2014-04-16 37 views
2

在以下代码中,单击selectRadio2按钮不会触发无线电更改事件!为什么不?有没有解决方法?以编程方式选择无线电时单选按钮更改事件不会触发

HTML:

<input id="radio1" type="radio" name="radioGroup" value="One"/> 
<label for="radio1">One</label><br/> 
<input id="radio2" type="radio" name="radioGroup" value="Two"/> 
<label for="radio2">Two</label><br/> 
<input id="radio3" type="radio" name="radioGroup" value="Three"/> 
<label for="radio3">Three</label> 

<br/><br/> 
<button id="selectradio2">Select Radio 2</button> 

JS:

$("input[name=radioGroup][type=radio]").change(function() { 
    alert($(this).attr("id") + " checked"); 
}); 

$("#selectradio2").click(function() { 
    $("#radio2").prop('checked',true); 
}); 

JSFIDDLE DEMO

回答

14

由于改变事件需要由用户,而不是通过JavaScript代码发起的实际浏览器的事件。你需要使用触发change事件:

$("#selectradio2").click(function() { 
    $("#radio2").prop('checked',true).change(); // or trigger('change') 
}); 

Updated Fiddle

+0

太棒了!你的答案在我的问题的26秒内出现!谢谢! – SNag

+0

很高兴它帮助了兄弟:-) – Felix

+0

那么点击事件与触发器是在第一个js文件和更改事件是其他js文件(按正确的顺序)?有什么办法可以吗? – tomasr

相关问题