在选中和取消选中时,向/从数组添加/删除复选框值(jQuery)

时间:2017-11-27 22:38:50

标签: javascript jquery wordpress checkbox

在我正在进行的项目中,我正在使用单选按钮和AJAX来更改自定义WordPress模板页面上显示的帖子。它工作得很好,但是,客户希望它是复选框而不是无线电输入,这样每次用户选择一个新类别时,它都会添加到正在显示的帖子而不是替换它。

例如:目前,如果您点击category1,则会显示category1帖子。单击category2,category2帖子替换category1帖子。如果同时选中了两个复选框,则客户端会显示“类别1”和“类别2”。

这是我目前的JS:

jQuery(document).ready(function ($) {
  // AJAX Post Filter scripts
  var $checkbox = $("#filter input:checkbox");
  var $checked = $("#filter input:checkbox:checked");
  var $unchecked = $("#filter input:checkbox:not(:checked)");
  $checkbox.change(function () {
    if ($checked) {
      var catID = $(this).val();

      $.ajax({
        type: 'POST',
        url: afp_vars.afp_ajax_url,
        data: {
          "action": "load-filter",
          category__in: catID
        },
        success: function (response) {
          $(".filter-section").empty().html(response);
          return false;
          console.log('success!');
        }
      });
      console.log(catID);
    }
  });
});

我很确定我需要使用我的变量.map()catID做一些事情,正如我在其他一些帖子中看到的那样,但我找不到有效的解决方案对我来说非常合适。

编辑:我意识到我需要澄清我尝试的内容。

我使用了以下代码:

var catID = $(this).map(function () {
  return $(this).val();
}).get();

但它只是用新的复选框值替换变量值。我需要添加值而不删除已经检查的值。然后,如果未选中复选框,我需要从数组中删除该值。

0 个答案:

没有答案
相关问题