Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery确保填写了所有表单字段_Javascript_Jquery_Forms_Validation - Fatal编程技术网

Javascript jQuery确保填写了所有表单字段

Javascript jQuery确保填写了所有表单字段,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我有一个简单的表单正在进行客户端验证。 要进行验证,所有字段都不应留空。 我就是这样做的: function validateForm() { $('.form-field').each(function() { if ( $(this).val() === '' ) { return false } else { return true; } }); } 由于某些原因,我的函数总是返回false,即使所有字段都已填充。您是从内部

我有一个简单的表单正在进行客户端验证。 要进行验证,所有字段都不应留空。 我就是这样做的:

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

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

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

试一试


您不能在匿名函数中返回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”]')


编辑啊,我说得太过火了,但我的解释仍然有效,希望能有所帮助。

这里有一个类似的方法:

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

   if(invalid>0)
       return false;
   else
       return true;
}
function validateForm() {
  var valid = true;
  $('.form-field').each(function() {
    valid &= !!$(this).val();
  });
  return valid;
}

仅将输入值转换为布尔值

您的函数不返回任何内容。Each正在为每个.form字段元素调用内部函数。validateForm从不返回值。我感觉情况就是这样。谢谢是的,非常有帮助,谢谢!我知道我在回归的问题上做得不对。对$('form input[type=“text”]”的建议很好,谢谢你的建议,它更干净。哦,天哪,你应该在表单上加一个类名,否则你会在屏幕上验证每个表单!或$('form.validated-form:input')来捕获文本字段。$(':required')是更优雅的方法,实际上尊重语义上定义为所需的任何元素
function validateForm() {
  var valid = true;
  $('.form-field').each(function() {
    valid &= !!$(this).val();
  });
  return valid;
}