11

アクセシビリティの問題を整理する最近のプロジェクトに戻り、すべてのフォーム要素にラベルが付いていることを確認しました。ラベルテキストをタグに入れると、以前に書いた厄介なコードで問題が発生しました。

基本的に、ラジオボタンとそのラベルがある場合:

<label for="zone_r1"><input type="radio" name="zone" id="zone_r1" value="NY" />New York</label>

そして、jqueryを使用して次のように非表示にします。

$('#zone_r1').hide();

実際のボタンは非表示になっていますが、ラベルテキストは非表示になっています。もともと私はラベルテキストのスパンを作成し、そのように隠しました:

<input id="NY" type="radio" name="zone" value="NY" /><span id="nyTXT">New York</span>

$('#NY').hide();
$('#nyTXT').hide();

何か案は?私はクラッジを使用しないことを好みます、そしてそれはラベルのスパンで検証されないかもしれません、しかし多分私は過度に熱心です。

4

7 に答える 7

24

私はこれがあなたのために働くべきだと思います

$("label[for=zone_r1],#zone_r1").hide();

これにより、探しているラジオ ボタンに「for」属性が設定されたラベルと、ラジオ ボタン自体が選択され、両方が非表示になります。

于 2009-03-13T17:38:26.673 に答える
14
$('#zone_r1').parent().hide();

私のために働く

于 2009-03-13T17:12:26.830 に答える
3

どうですか$('label:has(#zone_r1)').hide();

于 2009-03-13T17:13:08.437 に答える
2

最初のラジオボタンでは、実際のボタンを非表示にしてから、そのを非表示にすることができます。

$('#zone_r1').hide().parent().hide();

2番目のケースでは、ボタンと「次の」兄弟を非表示にできます。

$('#NY').hide().next().hide();
于 2009-03-13T17:13:37.840 に答える
0

親に「ラベル」セレクターを配置するだけです:

$(':radio[id=zone_r1]').parent('label').hide();

私のjsFiddleの例を見てください

于 2013-04-24T13:25:05.353 に答える
0

あなたはこれを行うことができます:

1.) 周囲のラベルなしでラジオ ボタン入力を定義します。

2.) 「オプション テキスト」(ラジオ ボタンの右側のテキスト) を で囲みます<span>

3.) 次の jQuery ステートメントを使用します。$("input:radio:not(:checked), input:radio:not(:checked) + span").hide();

これにより、ラジオ ボタンとラジオ ボタンの右側のテキストが選択され、非表示になります。

于 2009-09-21T16:14:30.790 に答える
0

値に基づいてラジオ ボタン コンテナまたは TD を非表示にする

jQuery("input[type=radio][value='EU2']").parent().hide();

于 2016-11-15T10:41:13.117 に答える