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 に答える