2011-06-23 10 views
1

これは私が取り組んでいるコードのスニペットです。これの短いバージョンは、のラベルのラジオボタンがNOにチェックされていない場合、詳細テキストボックスが表示されます。別の条件を追加して、別のラベルがチェックされている場合にボックスを表示させたいだけです。EITHER文が真の場合は関数を実行してください

例: 'NO'または 'HOW MANY PEOPLE'がチェックされている場合は、テキストボックスを表示します。

私はパイプを使用しようとしていましたが、成功しませんでした。

if ($this.siblings('label').text() != 'No') {        
    if ($this.is(':checked')) {         
     $details.show();        
    $prompt.hide();       
    } 
} 

事前に誰にも感謝していますが、これはちょっとした質問です。

+1

'.text()'のチェックは通常です悪い。 'data-something'属性を設定して' .data( 'something') 'を使う方がずっと良いです。どうして?あなたはある時点であなたのプログラムを国際化するかもしれませんし、実際にはそのコードがローカライズされたデータを使用することを望まないでしょう。 – ThiefMaster

答えて

2

使用またはブール:お使いの場合には

if ($this.siblings('label').text() != 'No' || $this.is(':checked')) 
     $details.show();        
     $prompt.hide(); 
} 

は、あなたがここにはJavaScriptブールのAND( & &によってJavaScriptでコーディングされている)ブール

詳細情報をしていた。http://www.quirksmode.org/js/boolean.html

最大

+1

'$ this [0] .checked'または' this.checked'を使用してください。 'is()'は強力なツールですが、プロパティの直接アクセスに比べて遅いです。 –

+0

また、jQueryルートに行きたい場合、jQuery 1.6+は 'this.prop(" checked ")'を許可します。これは 'true'または' false'を返します。 – brymck

+0

返信いただきありがとうございます。Maxですが、ラベルの異なるラジオボタンをチェックし、テキストボックスを1つのステートメントに表示するソリューションを探していました。したがって、2つのインスタンスのうち1つが正しい場合は、テキストボックスを表示します。 'if($ this.is( ':checked')){'は、ラジオボタンがNOにチェックされているときに機能します。 –

関連する問題