获取复选框值的数组
Jquery - get array of checkbox values
我有几个name="location[]"
复选框,每个复选框都有不同的值value="3"
或value="5"
等。我想知道如何在jquery当这些框被选中,把值在一个数组称为location[]
?这是我的html:
<ul id="searchFilter">
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="1">Toronto</li>
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="3">New York</li>
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="6">London</li>
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="5">Paris</li>
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="4">Berlin</li>
</ul>
这是我得到的jquery:
var $checkboxes = $("input:checkbox");
var opts = [];
$checkboxes.each(function(){
if(this.checked){
opts.push(this.name);
}
这只返回location[]
,并在我检查另一个项目时添加另一个location[]
。
请帮助。
我也有其他的复选框价格[],sqft[]…我希望保持复选框在同一地面,所以数组内1数组…
您可以使用:checked
选择器和map()
从一组匹配的元素创建一个数组。试试这个:
$(':checkbox').change(e => {
let opts = $(":checkbox:checked").map((i, el) => el.value).get();
console.log(opts);
});
/* alternative for IE support:
$(':checkbox').change(function() {
var opts = $(":checkbox:checked").map(function() {
return this.value;
}).get();
console.log(opts);
});
*/
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="searchFilter">
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="1">
Toronto
</li>
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="3">
New York
</li>
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="6">
London
</li>
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="5">
Paris
</li>
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="4">
Berlin
</li>
</ul>
要做到这一点,您需要使用我有多个复选框,
location[]
,price[]
,sqft[]
-我怎么能保持它们在单独的数组,但仍然在opts
内?
closest()
:
将map()
限制为当前ul
元素。$(':checkbox').change(function() {
let opts = $(this).closest('ul').find(":checkbox:checked").map((i, el) => el.value).get();
console.log(opts);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="searchFilter">
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="1">
Toronto
</li>
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="3">
New York
</li>
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="6">
London
</li>
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="5">
Paris
</li>
<li class="">
<input type="checkbox" name="location[]" class="cb_location" value="4">
Berlin
</li>
</ul>
<ul id="searchFilter">
<li>
<input type="checkbox" name="price[]" class="cb_price" value="2">
$200,000 to $299,999
</li>
<li>
<input type="checkbox" name="price[]" class="cb_price" value="3">
$300,000 to $399,999
</li>
<li>
<input type="checkbox" name="price[]" class="cb_price" value="4">
$400,000 to $499,999
</li>
<li>
<input type="checkbox" name="price[]" class="cb_price" value="5">
$500,000+
</li>
</ul>
相关文章:
- 如何在javascript中获取一组复选框值
- 在一组复选框中,一次只允许选择一个
- 如何引用表单元格中任意给定行的一组复选框
- 两组复选框的警告消息
- 组复选框不显示选中状态
- 将两个数组绑定到一组复选框中 - angularjs
- 如何使用jQuery/Javascript检查用户是否从一组复选框中选中了至少一个复选框
- 组复选框 - 如果未选中任何子框,如何取消选中父框
- 如何在选中数组复选框的情况下获取数组文本框的验证
- 我如何创建一个函数来选择一组复选框的子集
- 复选框选中功能,用于单个页面中的两组复选框,不能单独调用功能
- Javascript 从多组复选框中解析 JSON 数组
- 验证 ExtJS 复选框组复选框
- 使用 javascript 检查是否已选中一组复选框
- 如何将一组复选框名称发布到数组中
- 使用字符串数组复选框
- 数组复选框.检查javascript不工作
- PHP数组复选框问题,保留'right'提交后复选框
- jquery中的数组复选框验证
- Javascript只推多维数组复选框