2012-01-27 14 views
0

テキストボックスが表示されているかどうかを確認しようとすると、ユーザーは値を入力する必要があります。 以下の作品は動作しません。事前にページ上に表示されているすべてのテキストボックスに値があることを確認するJQuery

if ($(':text.TextNormalJQH').is(':visible').filter('[value=""]').length > 0) 
    { 
    alert (" Entering data for all the visbile textboxes is mandatory"); 
    } 

おかげ

BB

答えて

3

あなたは本当に近いです。

if ($(':text.TextNormalJQH:visible').is('[value=""]')) { 
    alert (" Entering data for all the visbile textboxes is mandatory"); 
} 

あなたが問題を抱えている理由は.is()の使用である:あなたがこれを行うことができ、

if ($(':text.TextNormalJQH:visible').filter('[value=""]').length > 0) { 
    alert (" Entering data for all the visbile textboxes is mandatory"); 
} 

または:ちょうどに変更します。一致した項目があればtrueを返し、一致した項目を返します。 http://api.jquery.com/is/

+0

それは魅力的なものでした。ありがとうPriorityMark。 – BumbleBee

0

あなたはそれが結果セットだから(あなたがページ上に複数のテキスト入力を持っている)、.each()を実行する必要があり、その次可能性があります

var isOk = true; 
$(':text.TextNormalJQH').each(function(){ 
    if ($(this).is(':visible') && $(this).val().length == 0)) 
     isOk = false; 
}) 

if(!isOk) 
{ 
    alert (" Entering data for all the visbile textboxes is mandatory"); 
} 
+0

$。各ループは非常に非効率的であり、この場合は不要です。彼はちょうど彼のセレクターを間違っている。 – PriorityMark

+0

ええ、そんなことは考えていませんでした。私はあなたの方が短いと思っています。 – Bogdan

関連する問題