2011-12-03 6 views
3

フィールドが4つあり、少なくとも1つのフィールドに値がある場合はtrueを返し、すべてのフィールドに値がない場合はfalseを返します。jQueryのすべてのフィールドを空にしますか?

私の試み:(私がしたいように、これは動作しません)

function required_eachinput(){ 
    result = true; 
    $('.myclass').each(function(){ 
     var $val = $(this).val(); 
     var ok = $val.each(function(){}); 
     alert(ok); 
     if(!$val){ 
      $(this).css("background", "#ffc4c4"); 
      result = false; 
     } 
     $(this).keyup(function() { 
      $(this).closest('form').find('input').css("background", "#FFFFEC"); 
     }) 
    }); 
     return result; 
} 

答えて

4

私の推薦は次のとおりです。すべての4の

function required_eachinput(){ 
    var result = ''; 
    $('.myclass').each(function(){ 
     result += $(this).val(); 
    }); 
    return result != ''; 
} 

それは基本的に何であるんCONCATENATE すべての値フィールド(任意の数のフィールドにすることができます)。結果が空の文字列でない場合は、少なくとも1つのフィールドに値があることを意味します。それ以外の場合は、すべて空です。

+0

慈悲サイード1月 –

+0

@Kate、farsi baladi?コジャハシ? –

+0

うん、mazandaran。 –

4

空の要素を除外し、左かどうかを確認することができます。http://jsfiddle.net/bbFA6/1/。あなたができる

function required_eachinput(){ 
    result = false; // Start with false 
    $('.myclass').each(function(){ 
     var $val = $(this).val(); 
     if($val){ 
      result = true; // If any is not empty return true 
     } else { 
      $(this).css("background", "#ffc4c4"); 
     } 
     $(this).keyup(function() { 
      $(this).closest('form').find('input').css("background", "#FFFFEC"); 
     }); 
    }); 
    return result; 
} 
1

function required_eachinput(){ 
    var inputs = document.querySelectorAll('.myclass'); 
    for(var i = 0, len = inputs.length; i < len; i++){ 
     if(inputs[i].value !== ''){ 
      return true; 
     } 
     return false; 
    } 
} 

Demo

1

Y U NO USE PLAIN JAVASCRIPT:あなたのコードを壊すことなく

function required_eachinput() { 
    return $(".myclass").filter(function() { 
     return $(this).val() !== ""; // only keep non-empty elements 
    }).length > 0; // check whether you have any non-empty elements left 
} 
+0

いつもプレーンなJvaScriptを使うことができます。ライブラリは便宜上のものです:) – pimvdb

関連する問題