javascript - jQuery 验证有效,但如果条目不正确,仍然能够提交表单

标签 javascript php jquery forms

我在我的联系表单中使用了 jquery 验证插件,如果表单中有问题,它会返回,但即使条目不正确(例如名称不超过 1 个字符)我也可以提交表单并且它发送包含错误数据的电子邮件。在条目全部正确之前,我怎样才能阻止按钮处于事件状态?

$(document).ready(function() {
    var newHTML = '<div class="col-sm-12 text-center" style="color:white; background-color:#6f8595; padding-bottom:15px; border-radius:5px;"><h3>Thank you for your message!<br />We will get back to you as soon as possible!</h3></div>';

    $('#myform').validate();

    $('.btn').click(function(){
        var data = $("#myform").serialize();
        $('.form').html('').append(newHTML);
        $.post( "includes/sendmail.php", {data});
    });
});

最佳答案

像这样:

$(function() {
  var newHTML = '<div class="col-sm-12 text-center" style="color:white; background-color:#6f8595; padding-bottom:15px; border-radius:5px;"><h3>Thank you for your message!<br />We will get back to you as soon as possible!</h3></div>';
  $('#myform').validate();
  $('#myform').on("submit",function(e){
    e.preventDefault();
    if ($(this).valid()) {
      var data = $(this).serialize();
      $(this).html(newHTML);
      $.post( "includes/sendmail.php", {data});
    }
  }); 
});

或者根据 documentation您可以在验证提交处理程序中执行 AJAX 调用 - 如下所示:

 $('#myform').validate({    
   submitHandler: function(form) {
     var data = $(form).serialize();
     $(form).html(newHTML);
     $.post( "includes/sendmail.php", {data});
     return false;
   }
 }); 

关于javascript - jQuery 验证有效,但如果条目不正确,仍然能够提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343301/

相关文章:

javascript - 设置一组要忽略的类的最佳方法

javascript - 每次在 Javascript 中调用函数时生成一个新的随机数

javascript - 使用meteor webApp避免xss的最佳实践?

javascript - 使用 RegExp 拆分的字符串在两端返回空字符串

Javascript - 无法解析通过 PHP 发送的 JSON 或字符串

php - 更新列数量

php - 使用 LAN 上不同 PC 上的同一个本地 MySQL 数据库

javascript - jQuery Document ready 在动态插入的脚本中如何表现?

c# - 在jquery中构建数组

javascript - 如何绑定(bind)Jquery函数来点击?