【问题标题】:how to get checked and unchecked check box values in an array using javascript/jquery如何使用 javascript/jquery 在数组中获取选中和未选中的复选框值
【发布时间】:2014-12-03 06:52:13
【问题描述】:

如何使用 javascript/jquery 在数组中获取选中和未选中的复选框值。

我有一个复选框列表。
下面是示例代码。

<input type="checkbox" class="chkCountry" value="1" checked="checked" />India    
<input type="checkbox" class="chkCountry" value="4" checked="checked" />China     
<input type="checkbox" class="chkCountry" value="2"/>Pakistan    
<input type="checkbox" class="chkCountry" value="3"/>Japan     

在这里,我想在另一个数组中获取数组中的已检查值。

如果我想再次取消选中检查值(这里是印度和中国),我想在另一个数组中获取值(1,4)。

【问题讨论】:

    标签: javascript jquery html arrays checkbox


    【解决方案1】:

    您可以使用.map() 将jQuery 对象集转换为类似数组

    var $checks = $('.chkCountry');
    
    var checked = $checks.filter(':checked').map(function () {
        return this.value;
    }).get();
    var unchecked = $checks.not(':checked').map(function () {
        return this.value;
    }).get();
    

    【讨论】:

    • 如果已经有一些未选中的复选框可用,那么它会使用当前未选中的复选框值获取所有未选中的复选框值,但是这里我只想要一个当前未选中的未选中的复选框值。
    • @kiranstack 所以您的脚本位于更改事件处理程序中
    • 是的,它在 onclick 事件中。
    【解决方案2】:

    检查:

    arrchecked = $('.chkCountry').map(function() {
        if(this.checked)
         return this.value;
    }).get();
    arrunchecked = $('.chkCountry').map(function() {
        if(!this.checked)
         return this.value;
    }).get();
    

    Working Demo

    【讨论】:

    • vararrcheckedarrunchecked 一起使用
    • 这将返回具有 truefalse 值的数组...我认为这不是 OP 所追求的
    • 用小提琴更新了答案。
    【解决方案3】:

    你可以用这个:

    var checked=[], unchecked=[];
    
    $('.chkCountry').change(function() {
         if(this.checked){
              checked.push(this.value);
              unchecked.splice(this.value, 1);
         }else{
              unchecked.push(this.value);
              checked.splice(this.value, 1);
         }
    }).change();
    

    如果您需要通过取消选中更新数组,我声明了一个 .splice() 方法来删​​除元素。

    【讨论】:

    • 如果已经有一些未选中的复选框可用,那么它会使用当前未选中的复选框值获取所有未选中的复选框值,但是这里我只想要一个当前未选中的未选中的复选框值。
    • @kiranstack 你可以在结束时放置一个触发器,就像代码中一样:}).change();
    • 仍然无法获取当前未选中的复选框值..而是获取所有未选中的复选框值
    猜你喜欢
    • 2015-01-31
    • 2013-09-15
    • 1970-01-01
    • 2011-10-17
    • 2023-03-18
    • 1970-01-01
    • 2019-06-19
    • 2012-07-02
    相关资源
    最近更新 更多