为什么阻止表单提交代码不起作用?

时间:2011-06-30 09:57:46

标签: jquery

$(document).ready(function(){ 
    if($("#field-huima-0-value").val()=='' && $(".link-field .form-text").val() =='')
    $("#edit-submit").click(function(){
       alert("you must at least enter one value!"); 
    });
});

field-huima-0-value .link-field .form-text 是两个输入文本框id和class。

当两个输入文本框为空时。我点击提交按钮。警告框显示,然后我单击确定。表格仍然提交。但现在,我想阻止表单提交。所以我在return false;行下添加了alert。它可以阻止表单提交。但是当我在它们的一个输入框中键入一个值时,单击该按钮。它仍然显示警报框。

4 个答案:

答案 0 :(得分:3)

问题是您在页面加载时检查值,而不是在单击按钮时检查。

请检查click事件中的值:

$(document).ready(function(){ 

  $("#edit-submit").click(function(){
    if($("#field-huima-0-value").val() == '' && $(".link-field .form-text").val() =='') {
      alert("you must at least enter one value!");
      return false;
    }
  });

});

注意:如果您需要填写这两个字段,则应在条件中使用||运算符而不是&&

还要考虑使用submit事件进行验证。不同之处在于,当您对click事件进行检查时,您只会验证表单是否为用于发布表单的按钮。如果有另一种方式发布表单(例如使用回车键),则不会进行验证。

答案 1 :(得分:2)

我认为您的代码需要进行一些修改,请仔细检查:

$(document).ready(function() { 
  $("#edit-submit").click(function() {
     if(!$("#field-huima-0-value").val() && !$(".link-field .form-text").val()) {
         alert("you must at least enter one value!"); 
         return false;
     }
     return true;
  });    
}); 

此代码会将check函数附加到提交按钮的click事件,并且只有在检查不成功时才返回false。

更新:我已经更新了上面的代码并对其进行了测试,现在工作正常,我也为您制作了测试此代码的示例,请点击此链接:{{3} }

让我知道发生了什么。

答案 2 :(得分:1)

  1. 点击
  2. 检查值 如果不想提交,
  3. 在点击时返回false
  4. 您可以使用.submit()提交表单

答案 3 :(得分:0)

$(document).ready(function() { 
    $("#edit-submit").click(function() {
        if($("#field-huima-0-value").val()=='' || $(".link-field .form-text").val() =='') {
           alert("you must at least enter one value!"); 
        });
    }
});

尝试一下 - 你需要在click事件中运行代码,你的if语句不包含我认为你想要的代码,并且正在测试两个字段是否都是如果任何一个字段为空,则为空。