2016-07-26 6 views
-1

特定の入力が空であるかどうかを確認するためにJqueryチェックを使用してJs関数を構築しています。ここで入力が空になっているかいないかどうかをチェックする機能があります:jqueryのJS関数は常に未定義です

function isValid(elements){ 
     var validation = false 
     elements.each(function() { 
     if ($(this).val().length > 0){ 
      validation = true 
     } 
     else { 
      validation 
     } 
     }); 
     validation 
    } 

しかし、私は私の関数は検証変数に含まれることになっているブール値をundefinedを返し、決してやる何?

関数がtrueまたはfalseを返すにはどうすればよいですか?

+0

あなたは要素のために何を渡していますか? –

+3

あなたは関数から何も返されていません。 –

+0

'検証 '行は何をしていると思いますか?あなたのロジックにも欠陥があります。検証は、あなたがしたいことをしない可能性が最も高いです。 – epascarello

答えて

2

少なくとも1つの要素が空の場合はfalseを返し、そうでない場合はtrueを返します。

function isValid(elements){ 
    var validation = true; 

    elements.each(function() { 
    if ($(this).val().trim().length === 0){ 
     validation = false; 
    } 
    }); 

    return validation; 
} 
+0

'each 'の中にreturn文が入っています –

+0

' trim長さのチェック、それ以外の場合はフィールドをスペースで埋めることは有効です –

2

関数isValid()は、JavaScriptで予期される動作であるため、未定義を返しています。undefinedは、関数が戻り値を1つも指定せず、関数isValid()に戻り値がない場合の戻り値です。

チェックthis answer

2

あなたは、Array#someを使用して以下のように

function isValid(elements) { 
return !Array.from(elements).some(function(itm){ itm.value.trim().length == 0 }); 
} 

をあなたのコードを行うことができますあなたは全く価値undefined返されますを返すデフォルトの手段としての機能、から何かを戻ってきています。

関連する問題