2013-06-26 277 views
1

我想要的是當我通過javascript設置選中狀態時,單選按鈕觸發onchange事件。radiobutton onchange當通過javascript設置時不會觸發

http://jsfiddle.net/4gtCn/

<script> 
function check() 
{ 
document.getElementById("red").checked=true 
} 
function uncheck() 
{ 
document.getElementById("red").checked=false 
} 
function selectionChanged(){ 
alert("checked"); 
} 
</script> 

What color do you prefer?<br> 
<input type="radio" name="colors" id="red" onchange="selectionChanged()">Red<br> 
<input type="radio" name="colors" id="blue" onclick="selectionChanged()">Blue<br> 
<input type="radio" name="colors" id="green">Green 


<button type="button" onclick="check()">Check "Red"</button> 
<button type="button" onclick="uncheck()">Uncheck "Red"</button> 

感謝大家的幫助。這是一個更大的問題的片段。我正在使用第三方報告工具(LogiXml)。我唯一的選擇是改變事件,因爲JavaScript的其餘部分是由工具生成的。所以一些提供的選項不會幫助我。所以在上面的例子中,我點擊按鈕時,單選按鈕中的相應事件應該會觸發。

+0

它似乎在爲我工作,確保您的所有語句都以分號結尾。 – Popo

回答

0

當您通過JS檢查/取消選中時,您可以手動觸發事件。像這樣...

document.getElementById("red").onchange(); 

警告:請檢查與其他瀏覽器特別是IE的兼容性,否則使用jQuery來實現相同。

0

您也可以調用的onClick方法是這樣的:

document.getElementById("radioButton").click() 
1

這是你想要做什麼?

<script> 
function check() 
{ 
    document.getElementById("red").checked=true; 
    selectionChanged(); 
} 
function uncheck() 
{ 
    document.getElementById("red").checked=false 
    selectionChanged(); 
} 
    function selectionChanged(){ 
    alert("checked"); 
} 
</script> 

所以你可以通過點擊它或按下按鈕來輸入函數「selectionChanged()」。

+0

+1爲了實際工作,'onchange()'在這裏似乎沒有多大幫助。很高興看到使用'onchange()'的解決方案! –

0

變化的onclick到的onchange所有單選按鈕,因爲在你的電平變化的一些單選按鈕和一些的onclick

<input type="radio" name="colors" id="red" onchange="selectionChanged()">Red<br> 
<input type="radio" name="colors" id="blue" onchange="selectionChanged()">Blue<br> 
<input type="radio" name="colors" id="green" onchange="selectionChanged()">Green 
-1

這似乎是罰款。嘗試使用螢火蟲進行調試,然後檢查Firebug中的控制檯是否有任何語法錯誤。

0

如果你想通過onChange事件運行selectionChanged函數,當用戶點擊調用check()函數時,在這種情況下,你可以直接調用checkChanged函數在check()函數中使其運行。

請檢查下面的代碼,我們在檢查中添加的SelectionChanged()()函數:

<script> 
function check() 
{ 
document.getElementById("red").checked=true 
selectionChanged(); 
} 
function uncheck() 
{ 
document.getElementById("red").checked=false 
} 
function selectionChanged(){ 
alert("checked"); 
} 
</script> 

What color do you prefer?<br> 
<input type="radio" name="colors" id="red" onchange="selectionChanged()">Red<br> 
<input type="radio" name="colors" id="blue" onclick="selectionChanged()">Blue<br> 
<input type="radio" name="colors" id="green">Green 


<button type="button" onclick="check()">Check "Red"</button> 
<button type="button" onclick="uncheck()">Uncheck "Red"</button> 
相關問題