【问题标题】:array of checkbox value checked and unchecked选中和未选中的复选框值数组
【发布时间】:2014-09-13 10:52:15
【问题描述】:

我有这个功能,当我选中一个或多个复选框时,函数会加载选中复选框的值...但是当我取消选中一个或多个复选框时,函数会显示一个空数组。

这是函数:

$(document).ready(function () {
   $('input[type="checkbox"]').change(function () {
         var mycheck = new Array();
         if ($(this).is(':checked')) {
            $("#line-checkbox-1:checked").each(function () {
                mycheck.push($(this).val());//aggiungo value del checked
            });
             alert(mycheck)


        } else {
            var itemtoRemove = $(this);
            mycheck.splice($.inArray(itemtoRemove, mycheck), 1); //rimuovo il value del dechecked

            alert(mycheck);


        }

    });

这是复选框的 HTML:

    <div class="col-lg-3">
 <input tabindex="17" id="line-checkbox-1" type="checkbox" name="servizi" value="3">

 </div>

【问题讨论】:

  • 插入 $(this) 在 else 语句中使用 $(this).val()。
  • 不使用 .val() 也不起作用
  • 你只有一个复选框,那你为什么要使用循环。如果存在多个复选框,则 id 应该是唯一的
  • 不,我有很多复选框,例如我只发布了一个
  • 只需使用此代码无需使用 if else 条件,因为您每次都在创建新数组并使用 id jsfiddle.net/o0Lcrv3w/19 的类插入

标签: javascript jquery html arrays checkbox


【解决方案1】:

试试这个简单的脚本,这对你有用:

HTML

<input type="checkbox" name="options[]" value="1" />
<input type="checkbox" name="options[]" value="2" />
<input type="checkbox" name="options[]" value="3" />
<input type="checkbox" name="options[]" value="4" />
<input type="checkbox" name="options[]" value="5" />

JQUERY

$(document).ready(function () 
{
   $('input[type="checkbox"]').change(function () 
   {
        var arr = $.map($('input:checkbox:checked'), function(e,i) {
            return +e.value;
        });
        alert(arr);
    });
});

【讨论】:

    【解决方案2】:

    这可能是因为您使用 id 来引用复选框,并且每次用户更改复选框时您都是从头开始创建数组。每次更改复选框时,您都应该重新检查列表。这意味着你不需要那个 if.( if($(this).is(":checked") )

    $('.checkboxes input[type="checkbox"]').change(function () {
        var mycheck = new Array();
    
        $(".checkboxes input[type='checkbox']:checked").each(function () {
            if ($(this).is(':checked')) {
                mycheck.push($(this).attr("id") + ": is " + $(this).val()); //aggiungo value del checked
            }
        });
        alert(mycheck);
    });
    

    这里是fiddle,如果我理解正确你想要做什么

    【讨论】:

      猜你喜欢
      • 2014-01-13
      • 2011-07-27
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多