我正在尝试循环表单以检查空字段,然后执行并运行。我目前正在使用我在这个网站上找到的下面这样的东西,但是每个循环检查 1 字段并看到 1 不为空并且仍然执行 else 函数。我想我需要一次检查所有然后执行下一个功能。我怎么能做到这一点?
if($('.enter-info--ownerInfo .req').val() != "") {
alert("Empty Fields!!")
} else {
run this function
}
谢谢...
我正在尝试循环表单以检查空字段,然后执行并运行。我目前正在使用我在这个网站上找到的下面这样的东西,但是每个循环检查 1 字段并看到 1 不为空并且仍然执行 else 函数。我想我需要一次检查所有然后执行下一个功能。我怎么能做到这一点?
if($('.enter-info--ownerInfo .req').val() != "") {
alert("Empty Fields!!")
} else {
run this function
}
谢谢...
使用过滤,很容易:
var anyFieldIsEmpty = $("form :input").filter(function() {
return $.trim(this.value).length === 0;
}).length > 0;
if (anyFieldIsEmpty) {
// empty fields
}
演示:http: //jsfiddle.net/Lz9nY/
$('.enter-info--ownerInfo .req').each(function() {
if ($(this).val() == "")
{
alert("empty field : " + $(this).attr('id'));
}
});
首先选择所有字段:
var fields = $('.enter-info--ownerInfo .req')
然后将它们过滤为具有空值的那些:
fields.filter(function() {
return this.value === '';
});
然后检查length
结果对象的属性。如果它等于,0
那么所有字段都有一个值,否则你执行你的函数。
if(fields.length === 0) {
// no empty fields
}
else {
// empty fields
}
您可以使用循环和标志:
var valid = true;
$('.req').each(function () {
if ($(this).val() == '') {
valid = false;
return false;
}
});
if (valid) {
// all fields are valid
}
您可以使用.filter
方法将元素减少为符合您的条件的元素:
if $('.enter-info--ownerInfo .req').filter(function () {
return $.trim($(this).val()) == ""
}).length > 0) {
alert("One or more fields are empty")
} else {
// run this function
}