为什么即使密码匹配后我的表单也没有提交。

时间:2016-01-01 15:28:24

标签: javascript java jquery jsp

这是我的脚本,表单id =“details”

<script type="text/javascript">
function onLoad() {
    $("#password").keyup(passCheck);
    $("#repeatpass").keyup(passCheck);
}
function passCheck() {
    var password = $("#password").val();
    var repeatpass = $("#repeatpass").val();
    if (password == repeatpass) {
        $("#matchpass").text("Passwords match");
        $("#matchpass").addClass("valid");
        $("#matchpass").removeClass("error");
        $("#details").submit(true);

    } else {
        $("#matchpass").text("Passwords donot match");
        $("#matchpass").addClass("error");
        $("#matchpass").removeClass("valid");
        $("#details").submit(false);

    }
}
$(document).ready(onLoad);
</script>

我想知道为什么我的表单(id =“details”)没有被提交,如果有人可以解释这个结构是如何工作的,那对我来说会更有帮助。谢谢

3 个答案:

答案 0 :(得分:0)

<强> Working fiddle

使用$("#details").submit()代替$("#details").submit(true);,然后移除$("#details").submit(false);

希望这有帮助。

答案 1 :(得分:0)

对于初学者,您无需在else块中进行.submit调用。

此代码分三步进行:

(1).ready命令告诉jQuery当页面准备就绪时,它应该执行名为onLoad的函数。

(2)onLoad函数表示当按下键盘上的键时,应调用passCheck函数。

(3)passCheck函数检查两个文本是否相等,如果是,则提交表单,否则不提交(即不应该调用.submit)。

这两个密码可能最初都是空的,所以它们是相同的并且尝试.submit但是错误会阻止函数在脚本停止工作的时间。之后,脚本完全停止工作。

上面提到的关于HTML代码请求的注释和关于.submit的参数的注释都是正确的。

答案 2 :(得分:0)

你不应该在你的submit函数中传递参数删除你的$("#details").submit(true);$("#details").submit(false);它不存在于jquery API中编写这段代码会更好用:

$( "form" ).submit(function(event) {
  if ( $( "span" ).hasClass('error')) {
   alert('prevented');
   event.preventDefault();
 }
 return;
});

Fiddle Link