0

我尝试使用以下脚本阻止表单提交,但它总是这样做。我什至尝试过preventDefault()文件加载,但它不起作用。

$("form").submit(function() {
      if ($("input").eq(3).val() == $("input").eq(4).val()) {
            $("span").text("Validated...").show();
        return true;
      }

      $("span").text("Passwords do not match!").show().fadeOut(1000);
      return false;
});
4

3 回答 3

1
$("form").submit(function(e) {
      if ($("input").eq(3).val() == $("input").eq(4).val()) {
            $("span").text("Validated...").show();
      }
      else{
        $("span").text("Passwords do not match!").show().fadeOut(1000);
        e.preventDefault();
      }
});

您需要使用preventDefault()取消操作。请注意e我添加到匿名函数调用的参数。

于 2012-09-05T20:47:49.937 回答
0

我的建议,或者我通常这样做的方式是这样的:

$("form").submit(function(e) {
    e.preventDefault(); // form never fires unless I want it to

    if( condition == true ) {
        $(this).submit();
    } else {
        //Don't submit
    }
}

是一个很好的解释为什么 preventDefault() > return false

于 2012-09-05T20:52:16.687 回答
0

为了结束这个,我想我找到了一些东西,但这充其量是荒谬的。我的函数在 $(document).ready 中时起作用。为什么?我很乐意听取您的建议。

$(document).ready(function(){

$("form").submit(function() {
      if ($("input").eq(3).val() == $("input").eq(4).val()) {
            $("span").text("Validated...").show();
        return true;
      }

      $("span").text("Passwords do not match!").show().fadeOut(1000);
      return false;
});

 });
于 2012-09-05T21:06:35.253 回答