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

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 に答える