我有以下简单的页面:
<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')
和同样的问题
我在这做错了什么?
答案 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" />