radiobutton onchange在通过javascript设置时不会触发执行。

8 浏览
0 Comments

radiobutton onchange在通过javascript设置时不会触发执行。

我想要的是当我通过JavaScript设置选中状态时,单选按钮触发onchange事件。

http://jsfiddle.net/4gtCn/


你更喜欢哪种颜色?
红色
蓝色
绿色


感谢大家的帮助。这只是一个更大问题的片段。我正在使用第三方报表工具(LogiXml)。我唯一的选择是更改事件,因为其余的JavaScript是由该工具生成的。因此,提供的一些选项对我没有帮助。所以在上面的例子中,当我点击按钮时,单选按钮应该触发相应的事件。

0
0 Comments

radiobutton onchange not firing when set via javascript的问题出现的原因是当使用javascript设置radiobutton时,onchange事件不会触发。

解决方法是通过调用radiobutton的click()方法来触发onchange事件。具体代码如下:document.getElementById("radioButton").click()

0
0 Comments

radiobutton onchange not firing when set via javascript问题的原因是,当通过javascript设置radiobutton的选中状态时,onchange事件不会自动触发。

解决方法是通过在javascript中手动触发onchange事件,可以使用以下代码:

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

需要注意的是,为了确保兼容性,特别是在IE浏览器中,建议使用jQuery来实现相同的功能。

0
0 Comments

从上面的内容可以得知,问题出现的原因是通过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设置选中状态时不触发的问题。

0