Jquery 如果字段为空或使用Safari,如何停止Ajax表单提交?

Jquery 如果字段为空或使用Safari,如何停止Ajax表单提交?,jquery,ajax,forms,safari,submit,Jquery,Ajax,Forms,Safari,Submit,简要说明: 我的表单使用jQuery验证客户端,使用php验证和处理服务器端,使用ajax进行提交,停止页面刷新,并在提交后清除表单 问题是:如果缺少表单字段(所有浏览器)并且完全为空(Safari),表单仍然会提交 我的问题是,如果全部或少数字段为空,如何阻止表单进入提交 欢迎所有帮助,非常感谢,谢谢 HTML格式: <div id="form"> <form name="form" action="form_process.php" method="post"

简要说明:

我的表单使用jQuery验证客户端,使用php验证和处理服务器端,使用ajax进行提交,停止页面刷新,并在提交后清除表单

问题是:如果缺少表单字段(所有浏览器)并且完全为空(Safari),表单仍然会提交

我的问题是,如果全部或少数字段为空,如何阻止表单进入提交

欢迎所有帮助,非常感谢,谢谢

HTML格式:

    <div id="form">
  <form name="form" action="form_process.php" method="post" onsubmit="return validateForm()" enctype="multipart/form-data">
    <p>
      <input type="text" maxlength="80" size="50" required="required" id="fname" name="fName" value="<?php echo $_GET['fName'];?>" placeholder="First Name" />
    </p>
    <p>
      <input type="text" maxlength="80" size="50" required="required" id="lName" name="lName" value="<?php echo $_GET['lName'];?>" placeholder="Last Name" />
    </p>
    <p>
      <input type="text" maxlength="80" size="50" required="required" id="email" name="email" value="<?php echo $_GET['email'];?>" placeholder="Email Address" />
    </p>
    <p>
      <input type="text" maxlength="80" size="50" required="required" id="subject" name="subject" value="<?php echo $_GET['subject'];?>" placeholder="Subject" />
    </p>
    <p>
      <textarea name="message" rows="6" cols="38" required="required" id="message" placeholder="Message"></textarea>
    </p>
    <br />
    <input type="submit" value="Submit" name="submit" />
    <input type="reset" value="Clear" name="clear" />
  </form>
</div>


  • 使用$.data()向窗体添加一些标志,或者在触发某个错误后向其添加valid或invalid之类的类

  • 检查此标志,如下所示:

  • $(表单).on('submit',函数(){ if($(this).hasClass('invalid')){ //错误处理 }否则{ //您的ajax调用 } e、 预防默认值(); } 试试下面的

    $(document).on('submit', '#form', function (e) {
    
        if ($(this).hasClass('invalid') {
           // error handling
        } else{
           // your ajax call
        }
        e.preventDefault();
    }
    

    这将是一个非常容易实现的方法。如果您仍然有任何疑问,请在评论中回复。将最早解决:) $(form).on('submit', function () { if ($(this).hasClass('invalid') { // error handling } else{ // your ajax call } e.preventDefault(); }
    $(document).on('submit', '#form', function (e) {
    
        if ($(this).hasClass('invalid') {
           // error handling
        } else{
           // your ajax call
        }
        e.preventDefault();
    }