0

我有以下琐碎的页面:

<html>  
<head>  
<script type="text/javascript">  
    function check(){  
        var cb = document.getElementById('aaa');  
        if(!cb.checked()){  
            alert("test!!!");  
        }  
    }  
</script>  
</head>  
<body>  
<input id="aaa" type="checkbox" name="modify" onclick="check()">Modify</input>  
</body>  
</html>  

如果我按下复选框,我会在 javascript 控制台中看到以下错误:

Uncaught TypeError: Property 'checked' of object #<HTMLInputElement> is not a function  
check   
onclick    

我也尝试过documents.getElementsByName('modify')同样的问题。
我在这里做错了什么?

4

3 回答 3

4

checked不是函数,如错误消息所述。

利用

if(!cb.checked){  

(不带括号)

请注意,您不必使用 查找元素getElementById,您可以传递元素:

<input id="aaa" type="checkbox" name="modify" onclick="check(this)">Modify  

function check(cb){  
    if(!cb.checked()){  
        alert("test!!!");  
    }  
} 

另请注意,该input元素不应关闭。您可能需要的是 label element,它可以让您单击文本以(取消)选中该框:

 <input id="aaa" type="checkbox" name="modify" onclick="check(this)">
 <label for=aaa>Modify</label> 
于 2013-05-26T17:00:08.103 回答
0

您也可以尝试使用 jquery,但您错误地添加了结束标记input type

<script type="text/javascript">
    $(document).ready(function(){
    $('#aaa').click (function ()
    {
    if ($(this).is(':checked'))
    {
    // Do stuff
    alert("test!!!");
    }
    });
    });
    </script>
    <input id="aaa" type="checkbox" name="modify"  /> 
于 2013-05-26T17:17:00.310 回答
0

从 cb.checked() 中删除括号 - 它不是一个函数。此代码应该可以工作:

<html>  
<head>  
<script type="text/javascript">  
    function check(){  
        var cb = document.getElementById('aaa');  
        if(!cb.checked){  
            alert("test!!!");  
        }  
    }  
</script>  
</head>  
<body>  
<input id="aaa" type="checkbox" name="modify" onclick="check()">Modify</input>  
</body>  
</html>  
于 2013-05-26T17:04:53.190 回答