[英]get value of checked checkbox list in array in jQuery
我有一個復選框列表,在頁面加載時預先選中了所有復選框。
首先,我想讀取所有復選框(已選中)值並存儲在全局數組中。
之后,每當用戶點擊任何復選框(未選中/選中)時,我都希望使用僅選中復選框的值更新數組。
所有這些我想在jQuery中做。
謝謝
<input type="checkbox" value="somevalue1" class="chk">
<input type="checkbox" value="somevalue2" class="chk">
<input type="checkbox" value="somevalue3" class="chk">
<input type="checkbox" value="somevalue4" class="chk">
<input type="checkbox" value="somevalue5" class="chk">
<script>
var someGlobalArray = new Array;
$(".chk").click(function() {
someGlobalArray=[];
$('.chk:checked').each(function() {
someGlobalArray.push($(this).val());
});
console.log(someGlobalArray);
});
</script>
你的意思是這樣的嗎?
var arrCheckboxes;
var checkboxSelector = "input[type='checkbox']";
$("body").delegate(checkboxSelector , "click", function(){
arrCheckboxes = $(checkboxSelector).map(function() {
return this.checked;
}).get();
});
(也許你應該將$(“body”)更改為更精確的容器)
如果你想要一個包含名稱(...或id或者元素)的對象的數組......你可以這樣做:
var arrCheckboxes;
var checkboxSelector = "input[type='checkbox']";
$("body").delegate(checkboxSelector , "change", function(){
arrCheckboxes = $(checkboxSelector).map(function() {
return { name: this.name, val: this.checked };
}).get();
});
我假設你想要的是被檢查項目的名稱或ID ,因為復選框值是布爾值?
var checked = {};
$(':input[type="checkbox"]').each(function() {
var name= this.name;
var val = this.checked;
if (val) {
checked[name] = val;
}
}).on('change', function() {
var name = this.name;
var val = this.checked;
if (val) {
checked[name] = val;
} else {
delete checked[name];
}
});
然后, checked
的對象將包含鍵 ,只有與已檢查項對應的對象才會出現在該對象中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.