2013-05-26 44 views
0

我有以下的瑣碎頁:的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> 

如果我按複選框我看到在JavaScript控制檯以下錯誤:

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

我也嘗試過與documents.getElementsByName('modify')和相同的問題。
我在這裏做錯了什麼?

回答

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> 
+0

。我編輯了另一個建議。 – sAnS

+0

@santanukumar也看到 –

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> 
+1

難道你不覺得這個答案是無用的,因爲它與舊的答案相同嗎? –

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" /> 
你錯誤地添加結束標籤輸入型:)