2010-07-31 65 views
1
<form action="index.php?page=checkin" method="post" name="regForm"> 
      Fullständiga namn: <input name="full_name" type="text" id="full_name" class="required"> 
    <br > 
    Email: <input name="usr_email" type="text" id="usr_email3" class="required email"> 
    <br> 
      Sex: <select name="sex"><option value="male">Kille</option><option value="female">Tjej</option></select> 
    <input type="submit" id="t" value="CheckIn"> 
     <script> 
    $("#t").click(function() { 
$("#Next_2").toggle(); 
}); 
</script> 
    <br> 
    <div id="Next_2" style="display: none"> 
     Lösenord: <input name="pwd" type="password" class="required password" id="pwd"> <br> 
      En gång till.. 
    <input name="pwd2" id="pwd2" class="required password" type="password" > 

    <br> 
      <input name="doRegister" type="submit" id="doRegister" value="Register"> 
    </div> 
     </form> 

我有這種形式。但我的問題是,當我按下CheckIn來切換其他兩個表單元素時,它認爲它應該是action =「index.php?page = checkin」,我希望它在下一個按鈕(register)上執行,應該如何我這樣做對不對?jQuery:切換按鈕問題與表單動作

回答

3

你應該return false;來防止按鈕的默認行爲。

$("#t").click(function() { 
    $("#Next_2").toggle(); 
    return false; 
}); 

或者,你可以調用event.preventDefault()

$("#t").click(function (event) { 
    event.preventDefault() 
    $("#Next_2").toggle(); 
}); 

不同的是,return false;也將防止事件冒泡。我認爲這不是一個問題,所以任何一種方法都應該有效。

1

theres 2種方式可以解決它。

1)留下您的標記相同,改劇本:

$("#t").click(function() { 
    $("#Next_2").toggle(); 
    return false; // this will stop the button from continuing its regular event 
}); 

2),而1是確定其更好地您的標記更改爲語義。提交不提交的提交按鈕是沒有意義的。因此它能夠更好語義改變你的提交按鈕,只是一個普通的按鈕:

<button type="button" id="t">CheckIn</button> 

也這樣,你不必改變你的腳本

2

你應該改變這樣的:

<input type="submit" id="t" value="CheckIn"> 

對此:

<input type="button" id="t" value="CheckIn"> 

「submit」輸入類型可通過執行su bmit包含的表單,因此點擊它會強制瀏覽器執行此操作。