事實證明一切,自己測試了N遍,發現網上的說法和自己以前的理解都是錯的,不知道大家有沒發現.
下面來看看網上大多資料的說法
代碼如下:
轉別人的一些東西:
jquery判斷checkbox是否被選中
在html的checkbox裡,選中的話會有屬性checked="checked"。
如果用一個checkbox被選中,alert這個checkbox的屬性"checked"的值alert($(#xxx).attr("checked")),會打印出"true",而不是"checked"!
如果沒被選中,打印出的是"undefined"。
注意紅色的部分,這裡說到
代碼如下:
$("#chekbox").sttr("checked")//should be print "true" , not "checked"
經過測試,證明上面說法有問題
代碼如下:
<script type="text/javascript">
$(function() {
$("#button").click(function() {
alert($("#checkbox").attr("checked"));
});
});
</script>
<input type="checkbox" name="checkbox" id="checkbox"><input type="button" id="button" value="Click Me">
//上面得出的結果是: 如果勾上checkbox,會打印出 “checked” , 如果取消打勾 會打印出 "undefined"
實驗證明Jquery獲取checked的值得打印出"true"是錯誤的
舉一反三:
而且發現Jquery獲取已經被勾上的checkbox,永遠都是"checked" 這讓人費解,如果有人知道為什麼,可以告訴我一下,哈~~
代碼如下:
<script type="text/javascript">
$(function() {
$("#button").click(function() {
alert($("#checkbox").attr("checked"));
});
});
</script>
<input type="checkbox" name="checkbox" id="checkbox" checked><input type="button" id="button" value="Click Me">
//注意紅色位置,如果默認checkbox為checked狀態,測試會發現,把勾去掉也是只會輸出"checked" , 表示不理解為什麼 Jquery會這樣
解決方法,還是用document.get獲取吧:
代碼如下:
<script>
function getcheckbox(){
var test = document.getElementById("checkbox").checked;
alert(test);
}
</script>
<input type="checkbox" name="checkbox" id="checkbox"><input type="button" id="button" value="Click Me" onclick="getcheckbox()">
//選中為"true",取消選中為"false"
如果有錯,希望指正。網上搜索的問題都是一個帖子轉N遍,自己測試證明一下