如何在提交之前将验证应用于ajax表单

时间:2015-09-03 16:20:35

标签: jquery ajax

我是ajax的新手,我已经学会了使用ajax提交表单,但是如何验证ajax提交,如何在这个特定的例子中应用验证。

JS:

a   b   c
asdf    qw  Y
sdf     
sdf     
asdf        
asdf    2sdf    Y
sadf        
asdf        
sdfa        
asdf    asdfsfd 
asdf        
asdf        
adsf        
asdf    asdfsfd 
asdf        
asdf        
adsf        
asdf    asdfsfd Y
asdf        
asdf        
adsf        

2 个答案:

答案 0 :(得分:0)

您可以在ajax函数之前添加验证,如果验证失败则中断函数。

$(document).ready(function () {
    $("#submit").click(function () {
        var nm = $("#nm").val();
        var em = $("#em").val();
        var mob = $("#mob").val();
        //Check everything you want to check here. 
        //store the result in a boolean variable called 'passed'
        //if the check fails (!passed), return false; 
        //if it passes, keep going.
        if(!passed) return false;
        $.ajax({
            url: "submit.php",
            type: "post",
            //data : "nm="+nm+"&em="+em+"&mob="+mob
            data: "nm=" + nm + "&em=" + em + "&mob=" + mob
        }).done(function (obj) {
            //$("#pre").html(obj);
            $('#mytable tr:last').after(obj);
        });
    });
});

答案 1 :(得分:0)

您可以使用jQuery验证插件(http://jqueryvalidation.org/validate)为表单提供验证。

您需要做的就是包含表单必须遵循的某些规则(http://jqueryvalidation.org/rules),如果表单在提交时有效,那么将调用您的ajax调用,否则用户将看到哪些表单输入需要修好。

$('#form').validate({

  rules: {
    // Rules for input fields go here
  },

  submitHandler: function(form) {
    var nm = $("#nm").val();
    var em = $("#em").val();
    var mob = $("#mob").val();
    $.ajax({
      url: "submit.php",
      type: "POST",
      data: $(form).serialize(), //Creates a URL encoded text string using form values
    }).done(function (obj) {
      $('#mytable tr:last').after(obj);
    });
  }
});

此插件可让您进行常见验证,如电子邮件,电话号码等。您所要做的就是指定该规则。

例如,如果你有

<label for="field">Required, email: </label>
<input class="left" id="field" name="field">

然后你可以有一个如下规则,它将确保输入是有效的电子邮件:

rules: {
  field: {
    required: true,
    email: true
  }
}

修改

这是一个关于验证如何工作的JSFiddle。 https://jsfiddle.net/vp41x1pp/12/