如何将这种HTML输入传递给JavaScript,以便识别这些数组值?
<input type="checkbox" id="collection[]" value="0">
<input type="checkbox" id="collection[]" value="1">
<input type="checkbox" id="collection[]" value="2">]
我唯一的想法(从未使用js这种方式,tbh)是通过以下方式实现的:
$("#collection").val();
但是我遇到了 undefined 错误。我不知道如何让javascript识别变量集合是一个数组,并且必须这样传递。
提前致谢!
答案 0 :(得分:1)
你不能拥有重复的ID。虽然在这种情况下重复的ID会为您提供所需的输出,但将它们用于多个元素是无效的。
<input type="checkbox" name="collection[]" value="0">
<input type="checkbox" name="collection[]" value="1">
<input type="checkbox" name="collection[]" value="2">
您可以通过多种方式访问基于数组的元素。
$("[name='collection[]']").map(function(){return $(this).val();}).get()
Working Demo用于检查已检查的输入。 要获得选中的复选框,
$('input').change(function () {
console.log($("[name='collection[]']:checked").map(function () {
return $(this).val();
}).get());
});
答案 1 :(得分:1)
请记住,ID必须在您的文档中是唯一的。所以由'name'设置而不是id。
您可以使用
$('#someid').is(":checked");
单独检查每个复选框,或使用jQuery选择器循环它们
循环设置
<input type="checkbox" name="checkboxes" value="0">
<input type="checkbox" name="checkboxes" value="1">
<input type="checkbox" name="checkboxes" value="2">
然后用jQuery,
$('input[name=checkboxes]:checked').each(function(i, e) {
e.val(); //The value of the checkbox that is selected
});
答案 2 :(得分:0)
$("#collection")
这意味着,“在页面上找到一个id等于收集的元素”,当然它找不到任何东西。您可以使用.each函数,您可以使用复选框属性。例如;
var myCheckBoxArray = []
$("input[type='checkbox']").each(function(i,elm){
myCheckBoxArray.push(elm);
});