【问题标题】:Create and store/add to an array from filtered checkbox values从过滤的复选框值创建并存储/添加到数组
【发布时间】:2015-12-15 01:56:48
【问题描述】:

我有一个场景,其中一长串复选框选项通过 PHP/ajax 查询过滤进出。因此,当用户选中一个或多个复选框时,需要创建一个用户选中的复选框的列表。

使用 jQuery 和 .map(),我能够创建选中复选框的初始列表数组。很简单。

var selected_checkboxes;

$( document ).on( 'click', '.checkbox_select', function() {
    var checkbox_selector = $( '.checkbox_select:checked' );

    selected_checkboxes = checkbox_selector.map( function(i, n) {
        return this.value;
    }).get();

    console.log(selected_checkboxes);
});

所以在这里,我们会说我有一组 10 个复选框(复选框 1 - 10),我检查前 3 个。

控制台输出 ["Checkbox 1", "Checkbox 2", "Checkbox 3"]

问题在您过滤复选框视图时出现。假设您过滤除复选框 3、5 和 6 之外的所有复选框。复选框 3 仍处于选中状态。现在,如果我们选中“复选框 5”,我们的新列表数组将如下所示:["Checkbox 3", "Checkbox 5"]

我知道它为什么这样做,但所需的结果是建立在运行过滤器之前之前检查的内容的基础上,这应该看起来像 ["Checkbox 1", "Checkbox 2", "Checkbox 3", "Checkbox 5"]。几乎就像您只是添加到初始值数组中一样。

过滤后的复选框不能用 hide/show 隐藏,因为它都是基于 ajax 的查询。

有没有人知道如何让数组像这样工作?任何帮助将不胜感激。

【问题讨论】:

    标签: jquery arrays checkbox


    【解决方案1】:

    你可以的

    var selected_checkboxes = [];
       $("input:[type = 'checkbox']").click(function(event) {
        if ($(this).attr("checked")) {
            selected_checkboxes.push($(this));
        }else{
            var index = selected_checkboxes.indexOf($(this));
            if (index != -1) {
                selected_checkboxes = selected_checkboxes.slice(index, 1);
            }
        }
    });
    for(var i = 0; i< selected_checkboxes.length;i++){
        console.log(selected_checkboxes[i].val());
    }
    

    请尝试!

    【讨论】:

      【解决方案2】:

      这里的 chekedid 是你的输入类型复选框类名

      function selectedMychecbox() {
          checkedid = Array();
          $('.checkedid:checked').each(function () {
              checkedid.push($(this).val());
          });
      
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-17
        • 1970-01-01
        • 2013-06-06
        • 1970-01-01
        • 2014-05-15
        • 1970-01-01
        相关资源
        最近更新 更多