从名称[]获取jQuery复选框

时间:2014-07-15 19:04:27

标签: 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,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>

我如何提醒价格[]查看检查的内容?我在jquery很新:(

6 个答案:

答案 0 :(得分:7)

首先,您可以按name

获取复选框
var checkboxes = $('input[name="price[]"]');

然后,要获取checked的值,您可以按伪选择器:checked进行过滤,然后收集他们的value

checkboxes.filter(":checked").map(function () {
    return this.value;
}).get()

DEMO: http://jsfiddle.net/Fn9WV/


<强>参考文献:

答案 1 :(得分:1)

你可以试试这个: -

var selected = [];
$('[name="price[]"]:checked').each(function(checkbox) {
selected.push(checkbox);
});

答案 2 :(得分:0)

使用带有jquery的选择器$('#searchFilter [name="price[]"]:checked')查找所有选中的复选框,其名称为&#34; price []&#34;以这种形式。这将是零个或多个元素,具体取决于检查的数量。

然后使用jquery each()函数迭代找到的复选框元素,并将它们的值收集到&#34; checked&#34;阵列。在每个()的回调函数中,this指向当前元素的dom节点,用$(this)包装它以创建一个jquery对象并使用.val()来检索它的价值。

最后将项目合并为一个字符串,使用&#34; check&#34;的join()函数形成一个逗号分隔的列表。阵列。如果没有选中任何复选框,则它可以是空字符串。

var checked = [];

$('#searchFilter [name="price[]"]:checked').each (function (i, e)
{
    checked.push ($(this).val ());
});

alert (checked.join (','));

请注意,其他答案使用this.value来检索&#34;值&#34;复选框的属性,而不是使用$(this).val(),这是jquery方法,并且不易出错。

答案 3 :(得分:-1)

尝试以下方法:

var alert="";
$('input[type=checkbox]').each(function () {
  if($(this).attr("checked") == 1)) alert += $(this).val();
  if(alert.length > 1) alert(alert);
});

答案 4 :(得分:-1)

一种方法是将每个复选框设置为特定的ID。然后,您可以使用$('#' + id).is(":checked")查看是否选中了复选框。如果选中该复选框,则可以获取范围并将其存储在变量中。然后,您可以返回该变量。

如果您需要有关此复选框的帮助,请查看this页面。

答案 5 :(得分:-1)

//get val on click    
$(document).on('click', ".cb_price", function () {
            if ($(this).is(':checked')) {
                 alert($(this).val());
            }
        });

//a button to call the function
$(document).on('click', ".some_button", function () {
            function getitems();
        });

function getitems(){
$(".cb_price").each(function () {
                //
                var $chk = $(this);
                if ($chk.is(':checked')) {
                    checkboxes = checkboxes + $(this).val() + ","
                }    
            });
alert(checkboxes);
}