Jquery复选框返回一些值

Jquery checkboxes return some values

本文关键字:返回 复选框 Jquery      更新时间:2023-09-26

我有一个复选框列表,我需要得到一个复选项数组。我使用下面的函数,但它也返回一些字符值。

var rIds = $('input[type=checkbox]:checked').map(function (_, el) {
    return $(el).val();
}).get();

输出为:

["1", "414", "true", "true"]

然而,我期望下面的输出,

["1", "414"]

为什么会这样?

Number()将只返回Number如果它是数字,否则0 ,Infinity , NaN将返回

var rIds = $('input[type=checkbox]:checked').map(function (_, el) {
    var current = $(el).val();
    if (Number(current) == current) return current ; 
}).get();

根据@Rory mcclrossan的建议,您的选择器将获取所有复选框。你应该更新你的选择器来获得合适的元素。

下面是显示这两种情况的基本实现:

$("#btnTest").on("click", function() {
  var allChks = $('input[type=checkbox]:checked').map((i, v) => v.value).get();
  var div2Chks = $(".container2 input[type=checkbox]:checked").map((i, v) => v.value).get();
  console.log(allChks, div2Chks)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="container1">
  <input type="checkbox" value="true" checked>Test
  <input type="checkbox" value="true" checked>Test
</div>
<div class="container2">
  <input type="checkbox" value="foo" checked>Foo
  <input type="checkbox" value="bar" checked>Bar
</div>
<button id="btnTest">Get Value</button>