2010-07-31 68 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包含的表单,因此点击它会强制浏览器执行此操作。