欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Jquery 獲取checkbox的checked問題

 更新時間:2011年11月16日 17:14:34   投稿:mdxy-dxy  
這個郁悶了,今天寫這個功能的時候發(fā)現(xiàn)了問題,上網(wǎng)找了好多資料對照,更加糾結(jié)

注意: 操作checkbox的checked,disabled屬性時jquery1.6以前版本用attr,    1.6以上(包含)建議用prop

1、根據(jù)id獲取checkbox

 $("#Checkbox1");

2、獲取所有的checkbox    

$("input[type='checkbox']");//或者$(":checkbox");

3、獲取所有選中的checkbox  

  $("input:checkbox:checked");
  //或$("input[type='checkbox']:checked");
  //或$("input:[type='checkbox']:checked");

4、獲取checkbox值
    用.val()獲取

$("#Checkbox").val();

 5、獲取多個選中的checkbox值   

var vals = [];
 $('input:checkbox:checked').each(function (index, item) {
 vals.push($(this).val());
 });

6、判斷checkbox是否選中(jquery 1.6以前版本 用  $(this).attr("checked") 

  用prop查:選中時checked值為true,未選中時checked值為false

$("#cbCheckbox1").click(function () {
 if ($(this).prop("checked")) {
  alert("選中");
 } else {
  alert("沒有選中");
 }
});

用attr查:選中checked值為checked,未選中時checked值為undefined

7、設(shè)置checkbox為選中狀態(tài)  

$('input:checkbox').attr("checked", 'checked');

$('input:checkbox').prop("checked", true);

8、設(shè)置checkbox為不選中狀態(tài)

$('input:checkbox').prop("checked", false);//或$('input:checkbox').attr("checked", '');

 9、設(shè)置checkbox為禁用狀態(tài)(jquery<1.6用attr,jquery>=1.6建議用prop)   

 $("input[type='checkbox']").attr("disabled", "disabled");
//或$("input[type='checkbox']").attr("disabled", true);
//或$("input[type='checkbox']").prop("disabled", true);
//或$("input[type='checkbox']").prop("disabled", "disabled");

10、設(shè)置checkbox為啟用狀態(tài)(jquery<1.6用attr,jquery>=1.6建議用prop)

$("input[type='checkbox']").removeAttr("disabled");
//或$("input[type='checkbox']").attr("disabled", false);
//或$("input[type='checkbox']").prop("disabled", "");

下面是其他網(wǎng)友的補充

事實證明一切,自己測試了N遍,發(fā)現(xiàn)網(wǎng)上的說法和自己以前的理解都是錯的,不知道大家有沒發(fā)現(xiàn).

下面來看看網(wǎng)上大多資料的說法

轉(zhuǎ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"

經(jīng)過測試,證明上面說法有問題

<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"> 

//上面得出的結(jié)果是: 如果勾上checkbox,會打印出 “checked” , 如果取消打勾 會打印出 "undefined"
實驗證明Jquery獲取checked的值得打印出"true"是錯誤的
舉一反三:
而且發(fā)現(xiàn)Jquery獲取已經(jīng)被勾上的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狀態(tài),測試會發(fā)現(xiàn),把勾去掉也是只會輸出"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"
如果有錯,希望指正。網(wǎng)上搜索的問題都是一個帖子轉(zhuǎn)N遍,自己測試證明一下

checkbox選中與取消選擇

1.html

<form>
 <input type="checkbox" name="items" value="足球" />足球
 <input type="checkbox" name="items" value="籃球" />籃球
 <input type="checkbox" name="items" value="羽毛球" />羽毛球
</form>

2.js

//全選中
$("input:checkbox").prop("checked","checked");
//取消選中
$("input:checkbox").removeAttr("checked");

注意:使用attr(),會發(fā)現(xiàn)代碼那里的checked="checked",但是頁面input上沒有顯示出來

相關(guān)文章

最新評論