复选框上的 JavaScript 不起作用

Jim*_*Jim 0 html javascript

我有以下简单页面:

<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>  
Run Code Online (Sandbox Code Playgroud)

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

Uncaught TypeError: Property 'checked' of object #<HTMLInputElement> is not a function  
check   
onclick    
Run Code Online (Sandbox Code Playgroud)

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

Den*_*ret 5

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

使用

if(!cb.checked){  
Run Code Online (Sandbox Code Playgroud)

(不带括号)

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

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

function check(cb){  
    if(!cb.checked()){  
        alert("test!!!");  
    }  
} 
Run Code Online (Sandbox Code Playgroud)

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

 <input id="aaa" type="checkbox" name="modify" onclick="check(this)">
 <label for=aaa>Modify</label> 
Run Code Online (Sandbox Code Playgroud)