显示内容选择单选按钮

问题描述:

我想创建一个场景,我在切换单选按钮时显示不同的内容。它在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> 
+1

没有,检查是正确的。 – 2013-03-04 20:17:40

+0

你使用的是什么版本的jQuery?您可能需要使用'.prop'而不是'.attr' – 2013-03-04 20:19:16

+0

@MarioDeSchaepmeester,no。 'selected'用于'

尝试更换:

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

有了:

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

和:

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

你添加一个变化事件到div,而它是有效的events do bubble,我将不得不使用它代替:

$('input[name="Q6"]').click(function(){ 
    $('#Q6Boutput').toggle(this.id == "Q6B"); 
    $('#Q6Aoutput').toggle(this.id == "Q6A"); 
}); 
+0

Q6是一个DIV,没有输入 – 2013-03-04 20:23:17

+0

@Diodeus,我刚才对你的回答发表了评论,你错了,读了我的评论。 – gdoron 2013-03-04 20:25:49

+0

DAMNNNN @Diodeus刚刚被叫出来了! – 2013-03-04 20:27:48

$('#Q6')选择<div>,而不是<input>

你可以使用$('#Q6 input')

+0

但是他确实使用'Q6A'和'Q6B' – MarioDS 2013-03-04 20:20:05

+0

'$('#Q6')。change(function(){... 'div没有变化事件 – idrumgood 2013-03-04 20:21:24

+0

@idrumgood,javascript bubble中的事件,所以div的变化事件确实会触发,恐怕你的回答是错误的 – gdoron 2013-03-04 20:24:09

你尝试的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(); 
    } 
}); 

有一种本地javascript方法来检查它,请参阅this question and answer

所以你的情况:

if($('#Q6A').checked){ 
    //etc 
} 
+1

那不是原生DOM,你会需要达到DOM级别'$()[] .checked' – 2013-03-04 20:20:33

+0

嗨马特,你能解释这一点吗? – soum 2013-03-04 21:07:03

+0

@soum,没有什么可以解释的,这是错误的。 – gdoron 2013-03-04 21:59:37