2011-11-01 99 views
2

我在代碼中看不到任何錯誤。但是,當複選框打勾時,Alertbox不顯示。當勾選複選框時,alertBox不顯示

有沒有人可以幫助我?提前致謝。

<script type="text/javascript" language="javascript" src="jquery/jquery-1.4.4.min.js"></script> 
    <script type="text/javascript" language="javascript"> 
    $(function(){ 

       if($("#checkkBoxId").attr("checked")) 
         { 
          alert("Checked"); 
         } 
         else 
         { 
          alert("Unchecked"); 
         } 

    }); 


    </script> 
    </head> 

    <body> 

     <p><input id="checkkBoxId" type="checkbox">Enable</p> 
    </body> 
+1

你真的需要使用jQuery的一個古老的版本? 1.6.4是最近的版本,在這個版本中你可以使用'.prop()',這對於獲取檢查狀態更快更舒適。 – ThiefMaster

回答

2

你需要點擊事件上的複選框綁定像

$("#checkkBoxId").click(function() { 
    if($(this).attr("checked")) { 
     alert("Checked"); 
    } 
    else { 
     alert("Unchecked"); 
    } 
}): 
+0

使用'prop'而不是'attr'。 – ThiefMaster

+1

除非您的版本號爲1.6 @ThiefMaster,您可以在代碼 –

+0

中看到'.change()'更適合這種情況。用戶可以使用keybord而不是鼠標來更改'checked'屬性。 – pltvs

-2

你要的功能附加到複選框的click事件。

$("#checkkBoxId").change(function(){ 

      if($(this).prop("checked")) 
        { 
         alert("Checked"); 
        } 
        else 
        { 
         alert("Unchecked"); 
        } 

}); 
+0

使用'prop'而不是'attr'。此外,您在第一行中忘記了一些引號。 – ThiefMaster

+0

好的,我改變了它。謝謝:) –

+0

'.change()'更適合這種情況。用戶可以使用keybord而不是鼠標來更改'checked'屬性。 – pltvs

4
$(document).ready(function() { 
    $('#checkkBoxId').change(function() { 
     if ($(this).prop('checked')) { 
      alert('checked'); 
     } else { 
      alert('not checked'); 
     } 
    }); 
}); 
+0

使用'prop('checked')'比'is(':checked')'快。 – ThiefMaster

+0

+1爲唯一正確/正確的答案到目前爲止! –

+1

-1因爲沒有看到曼紐爾做了什麼,也沒有看到除了你的其他答案以外的其他答案。 – Blazemonger

0

你的代碼執行恰好一次當DOM已準備就緒。所以任何更改都不會觸發它。

這裏的妥善解決:

$(function() { 
    $('#checkkBoxId').change(function() { 
     if ($("#checkkBoxId").prop('checked')) { 
      alert("Checked"); 
     } else { 
      alert("Unchecked"); 
     } 
    }); 
}); 
+1

道具將不適用於版本1.4.4 –

+0

啊,沒有看到他使用古代版本。那麼..他應該更新到1.6.4。 – ThiefMaster

+0

不能同意更多:) –