javascript - 从复选框列表中获取那些已更改的

标签 javascript jquery html

所以我有一个像

这样的复选框列表
<input checked="checked" class="inv_doc_ids[]" id="inv_doc_ids" name="inv_doc_ids[]" type="checkbox" value="01000290056001">

<input checked="checked" class="inv_doc_ids[]" id="inv_doc_ids" name="inv_doc_ids[]" type="checkbox" value="01000290056002">

<input checked="checked" class="inv_doc_ids[]" id="inv_doc_ids" name="inv_doc_ids[]" type="checkbox" value="01000290056003">

我需要检查更改了哪些复选框(已选中 => 未选中,未选中 => 已选中),并收集这些值。

我现在已经停止了:

var collectID = [];
    $.each($("input[class='inv_doc_ids[]']:checked"), function () {
                collectID.push($(this).val());
            });
            console.log(collectID);

它只收集那些被选中的复选框并在数组中返回它们的值=> [01000290056001, 01000290056002, 01000290056003]

我需要添加什么才能使其正常工作? 考虑添加这样的内容:

var show = $(this),
                    colllect = (input.attr("checked") || "") === "checked";
return (colllect !== input.attr("checked"));

但不知道这样对不对。

最佳答案

您可以选择那些具有选中属性的不选中,那些没有选中属性的选中。

$('button').on('click', e => {
  console.log(
    $('input[checked]:not(:checked), input:not([checked]):checked')
    .map( ( _, it ) => [[ it.value, it.checked ? 1 : 0 ]] )
    .get()
  );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input checked class="inv_doc_ids[]" name="inv_doc_ids[]" type="checkbox" value="01000290056001">
<input checked class="inv_doc_ids[]" name="inv_doc_ids[]" type="checkbox" value="01000290056002">
<input checked class="inv_doc_ids[]" name="inv_doc_ids[]" type="checkbox" value="01000290056003">
<br>
<input class="inv_doc_ids[]" name="inv_doc_ids[]" type="checkbox" value="01000290056004">
<input class="inv_doc_ids[]" name="inv_doc_ids[]" type="checkbox" value="01000290056005">
<input class="inv_doc_ids[]" name="inv_doc_ids[]" type="checkbox" value="01000290056006">
<br>
<button>Check</button>

关于javascript - 从复选框列表中获取那些已更改的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58014874/

相关文章:

JavaScript 事件不仅在第一个元素上

javascript - html5 将 <div> 拖放到相应位置

html - 在 CSS 中按比例缩放图像(如果可能,不用 JS!)

html - WeasyPrint 将 HTML 转换为 PDF 无法生成完美的结果

html - 如何让 `overflow-x` 代替 `overflow-y` 工作?

javascript - Handsontable - 每行开头的自定义 html 按钮,单击即可执行操作

javascript - 测试 JavaScript 的最佳方法是什么?

javascript - 从第三方代码公开未知的 JavaScript 对象方法

jquery - 如何从两个表中获取ID列表并在我的sql中传递第三个表

javascript - 如何在 blogger 或 blogspot.com 中获取当前国家/地区名称