【问题标题】:How to not submit a form if validation is false如果验证为假,如何不提交表单
【发布时间】:2010-10-14 12:11:45
【问题描述】:

如果其中一项验证为假,我如何确保表单不会提交?

$('#form').submit(function(){
    validateForm1();
    validateForm(document.forms['dpart2']);
    validateForm(document.forms['dpart3']);                     
}); 

【问题讨论】:

    标签: javascript jquery submit


    【解决方案1】:
    $('#form').submit(function(){
        return (validateForm1() &&
                validateForm(document.forms['dpart2']) &&
                validateForm(document.forms['dpart3']))
    });
    

    基本上,您在事件处理函数中返回 false。

    【讨论】:

      【解决方案2】:

      如果函数返回false,则不会提交表单。

      $('#form').submit(function(){
          return  validateForm1() 
                  && validateForm(document.forms['dpart2']) 
                  && validateForm(document.forms['dpart3']);                                         
                    }
      });
      

      【讨论】:

        【解决方案3】:

        好的,其他一些解决方案会出现延迟失败...您可能希望运行所有验证,以便显示所有错误。假设您的验证方法如果失败将返回 false。

        $("#myform").submit(function() {
        
            var ret = true;
            ret = validateForm1() && ret;
            ret = validateForm(document.forms['dpart2']) && ret
            ret = validateForm(document.forms['dpart3'])) && ret
            return ret;
        
        });

        这样你所有的验证器都会被调用,但是任何失败的布尔值都会导致失败。

        【讨论】:

          【解决方案4】:

          如果 validateForm(...) 和 validateForm1() 返回一个布尔值(true 表示没有发生验证错误),那么您尝试这样做:

          $('#form').submit(function(){
              if (!validateForm1() || !validateForm(document.forms['dpart2']) || !validateForm(document.forms['dpart3'])) {
                  return false;
              }
          });
          

          【讨论】:

            【解决方案5】:

            一个自动出现的想法:即使您实施了彻底的客户端验证,也要准备好在服务器上接收您可以想象的任何无效请求数据。

            客户端验证永远不会阻止您进行服务器端验证。这只是可用性的一个奖励。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-04-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-11-23
              • 1970-01-01
              相关资源
              最近更新 更多