Javascript jQuery从名称[]获取复选框
我有这样的复选框:Javascript jQuery从名称[]获取复选框,javascript,jquery,Javascript,Jquery,我有这样的复选框: <ul id="searchFilter"> <li><input type="checkbox" name="price[]" class="cb_price" value="1"> $200,000 to $299,999</li> <li><input type="checkbox" name="price[]" class="cb_price" value="3"> $300,00
<ul id="searchFilter">
<li><input type="checkbox" name="price[]" class="cb_price" value="1"> $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="5"> $400,000 to $499,999</li>
<li><input type="checkbox" name="price[]" class="cb_price" value="8"> $500,000+</li>
</ul>
- 200000至299999美元
- 300000至399999美元
- 400000至499999美元
- 50万美元+
如何提醒价格[]以查看已检查的内容?我对jquery非常陌生:(尝试以下方法:
var alert="";
$('input[type=checkbox]').each(function () {
if($(this).attr("checked") == 1)) alert += $(this).val();
if(alert.length > 1) alert(alert);
});
您可以尝试以下方法:-
var selected = [];
$('[name="price[]"]:checked').each(function(checkbox) {
selected.push(checkbox);
});
将选择器$('#searchFilter[name=“price[]”:checked')
与jquery一起使用,以查找此表单中所有名为“price[]”的复选框。这将是零个或多个元素,具体取决于选中的数量
var checked = [];
$('#searchFilter [name="price[]"]:checked').each (function (i, e)
{
checked.push ($(this).val ());
});
alert (checked.join (','));
然后使用jquery each()函数迭代找到的checkbox元素,并将它们的值收集到“checked”数组中。在each()的回调函数中,this
指向当前元素的dom节点,用$(this)
将其包装以创建jquery对象并使用.val()
从中检索值
最后,使用“checked”数组的join()函数将项目合并成一个字符串,以形成一个逗号分隔的列表。如果没有选中任何复选框,则该列表可以是空字符串
var checked = [];
$('#searchFilter [name="price[]"]:checked').each (function (i, e)
{
checked.push ($(this).val ());
});
alert (checked.join (','));
请注意,其他答案使用了
this.value
来检索复选框的“value”属性,而不是使用$(this.val()
,这是jquery的方法,更不容易出错。一种方法是将每个复选框设置为特定的id。然后可以使用$('\35;'+id)。is(“:checked”)
查看是否选中该复选框。如果选中该复选框,则可以获取范围并将其存储在变量中。然后可以返回该变量
如果您需要有关复选框的帮助,请选中页面。首先,您可以通过
name
获取复选框:
var checkboxes = $('input[name="price[]"]');
然后,要获得选中的值,您可以通过伪选择器:checked
进行过滤,然后收集它们的值:
checkboxes.filter(":checked").map(function () {
return this.value;
}).get()
演示:
参考文献:
jQuery().filter()
-
jQuery().map()
-
您希望何时发出警报..?您希望警报名称price[]
还是显示的实际价格?如果我选择值1和5,我将查找一个警报,其中1,5在选中一个警报后发出警报,另一个警报在单击两个警报后发出警报并同时显示这两个值..?$('input[name=“price[]”)。filter(:checked”).map(函数(){返回this.value;}).get())
-@Ian请将答案作为答案发布,这样问题就不会永远没有答案……这只对单个复选框有效。它不会提醒可能选中的其他复选框的值。这只会给我1个值,我正在寻找一个值列表,如果我选择1和5,我正在寻找一个1,5的警报,它将发送单独的警报。需要在循环中记录VAL并在之后发出警报。我目前正在审阅此答案,因为它被版主级别的用户标记为进行质量评估。感谢您的回答,非常感谢您的时间。但是,这被认为是低质量的回答,因为它缺少解释如何以及为什么它解决OP问题的文本。我不会回答这一次,我们不会将其标记为删除,因为它可能会解决问题,我们也不想失去它,但如果你能用几行解释它是如何帮助的,将答案充实一点就好了。谢谢。