簡體   English   中英

在jQuery中獲取數組中已檢查復選框列表的值

[英]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的對象將包含 ,只有與已檢查項對應的對象才會出現在該對象中。

http://jsfiddle.net/tFYPF/的工作演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM