0

ラジオボタンを切り替えると異なるコンテンツが表示されるシナリオを作成しようとしています。Chrome では正常に動作しますが、IE では動作しません。何が問題なのかわかりません。

<div id="Q6">
  <input type="radio" id="Q6A" value="yes" name="Q6"/>Same as current address<br/>
  <input type="radio" id="Q6B" value="no" name="Q6"/>New address<br/>
</div>

<div id="Q6Aoutput" style="display:none;">1</div>
<div id="Q6Boutput" style="display:none;">2</div>

<script>
$('#Q6').change(function(){
  if($('#Q6A').attr('checked')){
    $('#Q6Aoutput').show();
  }else{
    $('#Q6Aoutput').hide();
  }
  //
  if($('#Q6B').attr('checked')){
      $('#Q6Boutput').show();
  }else{
      $('#Q6Boutput').hide();
  }
});
</script>
4

4 に答える 4

1

交換してみてください:

if($('#Q6A').attr('checked')){

と:

if($('#Q6A').prop('checked')){

と:

$('#Q6').change(function(){

divに変更イベントを追加しましたが、イベントがバブルするので有効ですが、代わりにこれを使用します。

$('input[name="Q6"]').click(function(){
    $('#Q6Boutput').toggle(this.id == "Q6B");
    $('#Q6Aoutput').toggle(this.id == "Q6A");
});
于 2013-03-04T20:19:01.983 に答える
1

jQueryのis(:selector)メソッドを試しましたか?また、イベントを入力ラジオに直接添付する方がよい場合もあります。

$('#Q6A').change(function(){
  if($(this).is(':checked')){
    $('#Q6Aoutput').show();
  }else{
    $('#Q6Aoutput').hide();
  }
});
$('#Q6B').change(function(){
  if($(this).is(':checked')){
      $('#Q6Boutput').show();
  }else{
      $('#Q6Boutput').hide();
  }
});
于 2013-03-04T20:19:02.540 に答える
0

$('#Q6')を選択します。を選択し<div>ます<input>

あなたが使うことができます$('#Q6 input')

于 2013-03-04T20:18:54.570 に答える
0

それをチェックするネイティブのjavascriptの方法があります。この質問と回答を参照してください。

だからあなたの場合:

if($('#Q6A').checked){
    //etc
}
于 2013-03-04T20:19:20.403 に答える