单选按钮检入iframe

时间:2010-07-27 09:52:37

标签: javascript internet-explorer firefox radio-button

我有javascript,它位于iframe中。当我检查iframe中的单选按钮时,在父窗口上更改值。它在firefox上工作得很完美,但在IE上却没有...有人可以帮我解决这个问题吗?

<script type="text/javascript">
function getCheckedValue(radioObj) {
    if(!radioObj)
        return "";
    var radioLength = radioObj.length;
    if(radioLength == undefined)
        if(radioObj.checked)
            return radioObj.value;
        else
            return "";
    for(var i = 0; i < radioLength; i++) {
        if(radioObj[i].checked) {
            return radioObj[i].value;
        }
    }
    return "";
}

function asd(){
var qwer =  getCheckedValue(document.forms['uas'].elements['icon']);
window.parent.document.forms['register'].lang.value = qwer;
window.parent.document.getElementById("images").getElementsByTagName("img")[0].src = "images/lang/" + qwer  + ".png";

}
</script>

<form name="uas" method="GET" action="" onchange="asd();">
<label id="1"><input type="radio" name="icon" value="1">One</label><br><label id="2"><input type="radio" name="icon" value="2">Two ...

1 个答案:

答案 0 :(得分:0)

您的代码的问题是附加到表单元素的onchange事件,IE不支持此操作。相反,您必须为每个单选按钮使用onchange事件:

<label id="1"><input type="radio" name="icon" value="1" onchange="asd();">One</label>
<label id="2"><input type="radio" name="icon" value="2" onchange="asd();">Two</label>

或者,您可以使用Javascript自动添加事件侦听器。

这一行:

window.parent.document.getElementById("images").getElementsByTagName("img")[0].src = "images/lang/" + qwer  + ".png";

是不对的,getElementById已经返回了你需要的图像,所以getElementById(“images”)。src = ...就可以了。