开发者问题收集

通过 document.getElementById("radio1").click() 返回值

2013-11-19
388

我遇到了这种情况

<input type="radio" id="radio1" onclick="clickRadio1()" />Click Radio1
<input type="radio" id="radio2" onclick="clickRadio2()" />Click Radio2 to activate Radio1 click
<script type="text/javascript">
    <!--
    function clickRadio1(){
        return false;
    }

    function clickRadio2(){
        if(document.getElementById("radio1").click===false){
            alert("False");
        }else{
            alert("True");
        }
    }

    // -->
</script>

当我点击“radio2”时,为什么我总是得到“True”的提示。有人能解释一下为什么吗?非常感谢。

3个回答

因为事件名称是 onclick 而不是 click

另外,通过将代码放在页面的 loaded 事件中,确保您的 JavaScript 脚本在页面完全加载后运行。

Ibrahim Najjar
2013-11-19

尝试使用,

document.getElementById("radio1").checked;


 function clickRadio2(){
    if(document.getElementById("radio1").checked===false){
        alert("False");
    }else{
        alert("True");
    }
}
Krish R
2013-11-19

这是有效的(将 jsFiddle 的警报更改为 div 结果)

http://jsfiddle.net/zv49k/

您需要将单选按钮的 .click 属性更改为 .checked。

        <input type="radio" id="radio1" onclick="clickRadio1()" />Click Radio1
        <input type="radio" id="radio2" onclick="clickRadio2()" />Click Radio2
        <div id="resultdiv"></div>
        <script>
            function clickRadio1() {
                return false;
            }

            function clickRadio2() {
                if (!document.getElementById("radio1").checked) {
                    document.getElementById("resultdiv").innerHTML = "False";
                }
                else {
                    document.getElementById("resultdiv").innerHTML = "True";
                }
            }
        </script>
Howard Renollet
2013-11-19