jQuery表单提交脚本不起作用

时间:2012-09-05 20:45:33

标签: javascript jquery forms

我尝试使用以下脚本阻止表单提交,但它总是这样做。我甚至尝试了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;
});

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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

Here很好地解释了为什么preventDefault()>返回错误

答案 2 :(得分:0)

为了让它关闭,我想我找到了一些东西,但这充其量是荒谬的。我的功能在$(文件).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;
});

 });