2014-04-16 77 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

相關問題