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;
}