复选框上的Javascript无效

时间:2013-05-26 16:59:15

标签: javascript html

我有以下简单的页面:

<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')和同样的问题 我在这做错了什么?

3 个答案:

答案 0 :(得分: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元素。您可能需要的是标签element,它允许您单击文本以(取消)选中该框:

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

答案 1 :(得分: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>  

答案 2 :(得分: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"  />