使用jquery检查表单输入值

时间:2016-03-21 00:12:11

标签: jquery html forms

我有一个表单,我希望jquery检查并查看带有所需类的输入/选择值(这些类是否为#customerForm形式)是否为空。如果它们是我想阻止表单提交并将输入/选择框的颜色更改为红色。如果具有所需类的所有输入/选择值都具有值,我想提交表单,淡出表单输入并淡入下一个表单。这是我的代码:

$('#customerForm').submit(function (event) {
    var value = $('.required').each();
    if (value === "") {
        value.addClass("invalid");
        return false;
    } else {
        value.removeClass("invalid");
        $('#billForm, #shipForm').fadeOut();
        $('#payment-form').fadeIn();
    }
}); 

问题是表单不检查输入值并反正提交表单。任何帮助都会很棒。

3 个答案:

答案 0 :(得分:1)

$('。required')。each()返回一个输入数组。

您必须遍历每个输入并在表单提交之前检查该值。

$( ".required" ).each(function() {
  //validation
});

更完整的例子:

$('#customerForm').submit(function (event) {
  var error = false;
  $( ".required" ).each(function() {
    if ($(this).val() === "") 
    {
      $(this).addClass("invalid");
      error = true;
    } 
    else 
    {
      $(this).removeClass("invalid");
    }
  });
  if(!error)
  {
    $('#billForm, #shipForm').fadeOut();
    $('#payment-form').fadeIn();
  }
  else
  {
    return false;
  }
}); 

答案 1 :(得分:0)

你不能使用每个字段抓住一个字段。每个都是迭代它们。

所以你需要这样做。

 $('#customerForm').submit(function (event) {
     var value = $('.required'); // Get all the required fields
     var cnt=0; // setup a counter
     // Loop therough required fields and apply error class based on value
     $.each(value, function(i,val){
           if (val.val() === "") {
             cnt++;//add to the count of invalid fields
             val.addClass("invalid");// apply error class
           } else {
             val.removeClass("invalid");
           }
     });
     // Check the cnt variable is larger than 0, means we have errors
     if(cnt!=0){
          return false;
     // otherwise, continue
     } else {
        $('#billForm, #shipForm').fadeOut();
        $('#payment-form').fadeIn();
     }
}); 

答案 2 :(得分:0)

你应该像这样循环遍历每个元素

$('.required').each((function( index ) {
var error = 0;
value = $(this).html();
if (value === "") {
    this.addClass("invalid");
    error = 1;
} else {
    this.removeClass("invalid");
    $('#billForm, #shipForm').fadeOut();
    $('#payment-form').fadeIn();
}
if (error)
    return false;
});