我有一个jQuery驱动的JavaScript函数,它遍历一个字段列表并检查它们是否为空;如果是这样,则阻止提交表格。
required_fields.forEach(function(field) {
if (field.val() == '')
{
field.addClass('field-highlight');
return false;
}
else
{
field.removeClass('field-highlight');
}
});
// I want to return to here from the return false point
我如何以不同的方式构建它以实现我想要的目标?
答案 0 :(得分:5)
只需使用变量来跟踪验证:
var is_valid = true;
required_fields.forEach(function(field) {
if (field.val() == '') {
field.addClass('field-highlight');
is_valid = false;
return false;
} else {
field.removeClass('field-highlight');
}
});
return is_valid;
或者,你也可以使用field-highlight
类:
required_fields.forEach(function(field) {
if (field.val() == '') {
field.addClass('field-highlight');
return false;
} else {
field.removeClass('field-highlight');
}
});
return $('.field-highlight').length == 0;
答案 1 :(得分:0)
在forEach闭包中使用boolean,如果字段值为空,则将其设置为true。在提交表格之前检查该值
答案 2 :(得分:0)
听起来你想要做以下事情
field-highlight
类是否具有值如果是,请尝试以下
var anyEmpty = false;
required_fields.forEach(function() {
if ($(this).value() == '') {
$(this).addClass('field-highlight');
anyEmpty = true;
} else {
$(this).removeClass('field-highlight');
}
});
if (anyEmpty) {
// Block the form
}
答案 3 :(得分:0)
您是否写过“forEach”功能?如果是这样,那可以检查anon函数的返回值,如果它是假的,则停止迭代。
答案 4 :(得分:0)
如果你的required_fields
是一个jQuery对象,你可以这样做:
var stop = required_fields.removeClass('field-highlight')
.filter("[value == '']").addClass('field-highlight')
.length;
return !!stop
或许这样效率更高?
var stop = required_fields.filter('.field-highlight').removeClass('field-highlight')
.end().filter("[value == '']").addClass('field-highlight')
.length;
return !!stop