2

有没有更短的方法来为 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 }

它不等效,因为它不作为一个组运行条件,而是单独运行?对?

4

4 回答 4

2

您可以提供要验证类的所有元素,然后使用 jQuery 的 each 函数

$('.validate').each(function(index) {
  if ($(this).val() == '')
     alert("empty");
});

http://api.jquery.com/each/

或者,如果您只想要一次警报,请执行以下操作:

$('.validate').each(function(index) {
  if ($(this).val() == ''){
     alert("empty");
     return false;
  }
});
于 2012-09-19T15:35:23.430 回答
0

你可以这样做..

if ($('#fname-field, #lname-field, #cell-field/*, ..*/')
    .filter(function () { 
         return $(this).val(); 
     }).length)
于 2012-09-19T15:36:47.033 回答
0
var i  = 0; 
$('input').each(function() { 
if($(this).val().length == '0') { 
i++;; 
}  
});
alert("Found " + i + " empty fields");

http://jsfiddle.net/QrkWz/2/

于 2012-09-19T15:38:52.217 回答
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
        }
于 2012-09-19T15:39:32.227 回答