首页 文章

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

提问于
浏览
0
$(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 .

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

4 回答

  • 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 .

    Update: 我've updated the above code ans tested it, and now working fine, also I'已经为您提供了测试此代码的示例,请点击此链接:http://jsfiddle.net/6egtW/1/

    让我知道发生了什么 .

  • 1

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

    请检查 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 事件进行检查时,您将仅验证表单是否为用于发布表单的按钮 . 如果有另一种方式发布表单(例如使用回车键),则不会进行验证 .

  • 3
    • 点击查看值
      如果不想提交,

    • 在点击时返回false

    • 您可以使用.submit()提交表单

  • 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 语句不包含我认为你想要的代码,并且正在测试两个字段是否为空,如果两个字段都为空则不行 .

相关问题