radiobutton onchange在通过javascript设置时不会触发执行。
radiobutton onchange在通过javascript设置时不会触发执行。
我想要的是当我通过JavaScript设置选中状态时,单选按钮触发onchange事件。
你更喜欢哪种颜色? 红色 蓝色 绿色
感谢大家的帮助。这只是一个更大问题的片段。我正在使用第三方报表工具(LogiXml)。我唯一的选择是更改事件,因为其余的JavaScript是由该工具生成的。因此,提供的一些选项对我没有帮助。所以在上面的例子中,当我点击按钮时,单选按钮应该触发相应的事件。
从上面的内容可以得知,问题出现的原因是通过JavaScript设置radiobutton的选中状态时,onchange事件没有触发。解决方法是使用onchange事件的替代方法。
解决方法一:
使用onclick事件代替onchange事件。
function check() { document.getElementById("red").checked=true; selectionChanged(); } function uncheck() { document.getElementById("red").checked=false; selectionChanged(); } function selectionChanged(){ alert("checked"); }
解决方法二:
手动触发onchange事件。
function check() { document.getElementById("red").checked=true; fireOnChange(document.getElementById("red")); selectionChanged(); } function uncheck() { document.getElementById("red").checked=false; fireOnChange(document.getElementById("red")); selectionChanged(); } function selectionChanged(){ alert("checked"); } function fireOnChange(element){ if ("createEvent" in document) { var evt = document.createEvent("HTMLEvents"); evt.initEvent("change", false, true); element.dispatchEvent(evt); } else { element.fireEvent("onchange"); } }
使用以上两种方法可以解决radiobutton onchange事件在通过JavaScript设置选中状态时不触发的问题。