为jQuery写这个有更短的方法吗?以某种方式捆绑它?看起来非常低效。
if (
($('#fname-field').val() == '') ||
($('#lname-field').val() == '') ||
($('#cell-field').val() == '') ||
($('#email-field').val() == '') ||
($('#street-field').val() == '') ||
($('#pcode-field').val() == '') ||
($('#city-field').val() == '') ||
) { // Do something }
我已经四处寻找但尚未找到答案。我不认为以下内容是等效的:
if ($('#fname-field, #lname-field, #cell-field etc...' == '')) { // Do something }
它不是等价的,因为它没有作为一个组运行条件,而是单独运行?正确?
答案 0 :(得分:2)
您可以提供要验证类的所有元素,然后使用jQuery的每个函数
$('.validate').each(function(index) {
if ($(this).val() == '')
alert("empty");
});
或者,如果您只想做一次警报:
$('.validate').each(function(index) {
if ($(this).val() == ''){
alert("empty");
return false;
}
});
答案 1 :(得分:0)
你可以这样做..
if ($('#fname-field, #lname-field, #cell-field/*, ..*/')
.filter(function () {
return $(this).val();
}).length)
答案 2 :(得分:0)
var i = 0;
$('input').each(function() {
if($(this).val().length == '0') {
i++;;
}
});
alert("Found " + i + " empty fields");
答案 3 :(得分:0)
您可以尝试这种方法
var isCheck = false;
var elems = $('#fname-field ,#lname-field , #cell-field , #email-field ,#street-field ,#pcode-field , #city-field' );
$.each(elems , function() {
if($this).val() == ''){
isCheck = true;
return false
}
});
if(isCheck){
// Your code here
}
else{
// Do something else
}