鑑於網上總結的資料排版差、總結混亂、版本陳舊,所以從新總結了一下常用的jQuery操作radio、checkbox、select,所用jQuery版本爲 jquery-1.4.2.min.js 。以下,按三種表單元素分別總結:
1、radio:單選框
HTML代碼:
<input type="radio" name="radio" id="radio1" value="1" />1
<input type="radio" name="radio" id="radio2" value="2" />2
<input type="radio" name="radio" id="radio3" value="3" />3
<input type="radio" name="radio" id="radio4" value="4" />4
js操作代碼:
// 判斷有沒有單選框被選中
jQuery("input[type='radio'][name='radio']:checked").length == 0 ? "沒有任何單選框被選中" : "已經有選中";
// 獲取一組radio被選中項的值
jQuery('input[type="radio"][name="radio"]:checked').val();
// 設置value = 2的一項爲選中
jQuery("input[type='radio'][name='radio'][value='2']").attr("checked", "checked");
// 設置id=radio2的一項爲選中
jQuery("#radio2").attr("checked", "checked");
// 設置index = 1,即第二項爲當前選中
jQuery("input[type='radio'][name='radio']").get(1).checked = true;
// id=radio2的一項處於選中狀態則isChecked = true, 否則isChecked = false;
var isChecked = jQuery("#radio2").attr("checked");
// value=2的一項處於選中狀態則isChecked = true, 否則isChecked = false;
var isChecked = jQuery("input[type='radio'][name='radio'][value='2']").attr("checked");
2、checkbox:複選框
HTML代碼:
<input type="checkbox" name="checkbox" id="checkAll" />全選/取消全選
<input type="checkbox" name="checkbox" id="checkbox_id1" value="1" />1
<input type="checkbox" name="checkbox" id="checkbox_id2" value="2" />2
<input type="checkbox" name="checkbox" id="checkbox_id3" value="3" />3
<input type="checkbox" name="checkbox" id="checkbox_id4" value="4" />4
<input type="checkbox" name="checkbox" id="checkbox_id5" value="5" />5
js操作代碼:
// 獲取指定id的複選框的值
var val = jQuery("#checkbox_id1").val();
// 判斷id=checkbox_id3的那個複選框是否處於選中狀態,
// 選中則isSelected=true;否則isSelected=false;
var isSelected = jQuery("#checkbox_id3").attr("checked");
jQuery("#checkbox_id3").attr("checked", true);// or
// 將id=checkbox_id3的那個複選框選中,即打勾
jQuery("#checkbox_id3").attr("checked", 'checked');
jQuery("#checkbox_id3").attr("checked", false);// or
// 將id=checkbox_id3的那個複選框不選中,即不打勾
jQuery("#checkbox_id3").attr("checked",'');
// 將name=checkbox, value=3 的那個複選框選中,即打勾
jQuery("input[name=checkbox][value=3]").attr("checked",'checked');
// 將name=checkbox, value=3 的那個複選框不選中,即不打勾
jQuery("input[name=checkbox][value=3]").attr("checked",'');
// 設置index = 2,即第三項爲選中狀態
jQuery("input[type=checkbox][name=checkbox]").get(2).checked=true;
//由於複選框一般選中的是多個,所以可以循環輸出選中的值
jQuery("input[type=checkbox]:checked").each(function(){alert(jQuery(this).val()); });
// 全選/取消全選
jQuery(function() {
jQuery("#checkAll").click(function(){
if(jQuery(this).attr("checked") == true){// 全選
jQuery("input[type=checkbox][name=checkbox]").each(function(){
jQuery(this).attr("checked", true);
});
} else {// 取消全選
jQuery("input[type=checkbox][name=checkbox]").each(function(){
jQuery(this).attr("checked", false);
});
}
});
});
3、select:下拉框
HTML代碼:
<select name="select" id="select_id" style="width: 100px;">
<option value="1">11</option>
<option value="2">22</option>
<option value="3">33</option>
<option value="4">44</option>
<option value="5">55</option>
<option value="6">66</option>
</select>
js操作代碼:
// 爲Select添加事件,當選擇其中一項時觸發
jQuery("#select_id").change(function(){});
// 獲取Select選中項的Value
var checkValue = jQuery("#select_id").val();
// 獲取Select選中項的Text
var checkText = jQuery("#select_id :selected").text();
// 獲取Select選中項的索引值
var checkIndex = jQuery("#select_id").attr("selectedIndex");
// or
jQuery("#select_id").get(0).selectedIndex;
// 5.獲取Select最大的索引值
var maxIndex = jQuery("#select_id :last").attr("index");
// or
jQuery("#select_id :last").get(0).index;
// jQuery設置Select的選中項
// 設置Select索引值爲1的項選中
jQuery("#select_id").get(0).selectedIndex = 1;
// 設置Select的Value值爲4的項選中
jQuery("#select_id").val(4);
// jQuery添加/刪除Select的Option項
// 爲Select追加一個Option(下拉項)
jQuery("#select_id").append("<option value='新增'>新增option</option>");
// 爲Select插入一個Option(第一個位置)
jQuery("#select_id").prepend("<option value='請選擇'>請選擇</option>");
// 刪除Select中索引值爲1的Option(第二個)
jQuery("#select_id").get(0).remove(1);
// 刪除Select中索引值最大Option(最後一個)
jQuery("#select_id :last").remove();
// 刪除Select中Value='3'的Option
jQuery("#select_id [value='3']").remove();
// 清空下拉列表 jQuery("#select_id").empty();