2012-03-26 3 views
2

属性の値が ''と等しい場合、人々が送信できないようにするコードです。私の問題は、最初から最後の入力までIFステートメントをチェックすることです。つまり、最初の入力に値がある場合は、フォームが送信されます。最初の2つの入力が満たされていれば、それは送信されます。最初の入力が満たされていない場合、他の入力に対しては正常に動作します。 trueかfalseを返す前にすべての入力をチェックすることは可能ですか?If文は、最初のセレクタがtrueを返す場合にtrueを返します。

$('form').submit(function() { 
    var input = $('input, textarea'); 

    if (input.data('fill') == 'fill' && input.val() == '') { 
     return false; 
    } 
}); 

私は「もしそうでない」との個別入力を標的とすることにより、この問題を解決することができます知っているが、それはちょうどそれを行うには間違った方法のように思えます。

答えて

3

inputの値をすべて考慮するには、eachメソッドを使用します。

$('form').submit(function() {  
    var allFilled = true; 
    $('input, textarea').each(function() { 
    if ($(this).data('fill') === 'fill' && $(this).val() === '') { 
     allFilled = false; 
    } 
    }); 

    return allFilled; 
}); 
+0

ありがとう、あなたはif文からvar falseを作成できたことを知りませんでした。それはちょうど華麗です!ありがとう – BrianP

関連する問題