jQuery确保填写所有表单字段

时间:2013-09-20 00:40:41

标签: javascript jquery forms validation

我有一个简单的表单,我正在进行客户端验证。 要进行验证,不应将任何字段留空。 这就是我的方法:

function validateForm() {
  $('.form-field').each(function() {
    if ( $(this).val() === '' ) {
      return false
    }
    else {
      return true;
    }
  });
}

由于某种原因,我的函数总是返回false,即使所有字段都已填满。

4 个答案:

答案 0 :(得分:33)

您无法在匿名函数中返回false。此外,如果它确实有效,如果第一个字段为空,则返回false,否则返回true,并完全忽略其余字段。可能有一个更优雅的解决方案,但你可以做这样的事情:

function validateForm() {
  var isValid = true;
  $('.form-field').each(function() {
    if ( $(this).val() === '' )
        isValid = false;
  });
  return isValid;
}

另一个建议:这需要您使用该formfield类装饰所有表单字段。您可能对使用其他选择器进行过滤感兴趣,例如: $('form.validated-form input[type="text"]')

编辑啊,我受到了打击,但我的解释仍然有效,希望对您有所帮助。

答案 1 :(得分:4)

您从内部函数返回而不是从validate方法返回

尝试

function validateForm() {
    var valid = true;
    $('.form-field').each(function () {
        if ($(this).val() === '') {
            valid = false;
            return false;
        }
    });
    return valid
}

答案 2 :(得分:1)

function validateForm() {
    var invalid= 0;
    $('.form-field').each(function () {
        if ($(this).val() == '') {
            invalid++;
        }
    });

   if(invalid>0)
       return false;
   else
       return true;
}

答案 3 :(得分:-1)

这是一种类似的方法:

function validateForm() {
  var valid = true;
  $('.form-field').each(function() {
    valid &= !!$(this).val();
  });
  return valid;
}

!!只是将输入值转换为bool