使用jQuery获取复选框列表值

时间:2009-08-17 12:06:57

标签: javascript jquery

在div中,我有一些复选框。我想当我按下按钮时,选中所有复选框的名称。你能告诉我怎么做吗?

<div id="MyDiv">
....
<td><%= Html.CheckBox("need_" + item.Id.ToString())%></td>
...
</div>

谢谢,

8 个答案:

答案 0 :(得分:75)

$(document).ready(function() {
    $('#someButton').click(function() {
        var names = [];
        $('#MyDiv input:checked').each(function() {
            names.push(this.name);
        });
        // now names contains all of the names of checked checkboxes
        // do something with it
    });
});

答案 1 :(得分:9)

因为没人提到这个..

如果你想要的只是一个值数组,那么更简单的选择就是使用.map()方法。只需记住调用.get()将jQuery对象转换为数组:

Example Here

var names = $('.parent input:checked').map(function () {
    return this.name;
}).get();

console.log(names);

&#13;
&#13;
var names = $('.parent input:checked').map(function () {
    return this.name;
}).get();

console.log(names);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent">
    <input type="checkbox" name="name1" />
    <input type="checkbox" name="name2" />
    <input type="checkbox" name="name3" checked="checked" />
    <input type="checkbox" name="name4" checked="checked" />
    <input type="checkbox" name="name5" />
</div>
&#13;
&#13;
&#13;

Pure JavaScript:

Example Here

var elements = document.querySelectorAll('.parent input:checked');
var names = Array.prototype.map.call(elements, function(el, i) {
    return el.name;
});

console.log(names);

&#13;
&#13;
var elements = document.querySelectorAll('.parent input:checked');
var names = Array.prototype.map.call(elements, function(el, i){
    return el.name;
});

console.log(names);
&#13;
<div class="parent">
    <input type="checkbox" name="name1" />
    <input type="checkbox" name="name2" />
    <input type="checkbox" name="name3" checked="checked" />
    <input type="checkbox" name="name4" checked="checked" />
    <input type="checkbox" name="name5" />
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:4)

var aArray = [];
window.$( "#myDiv" ).find( "input[type=checkbox][checked]" ).each( function()
{
  aArray.push( this.name );

});

您可以将它放在一个函数中,然后单击该按钮执行。

答案 3 :(得分:3)

未经测试但应该有效:

$("#MyDiv td input:checked").each(function()
{
    alert($(this).attr("id"));
});

答案 4 :(得分:2)

你应该使用map。

$('input[type=checkbox]:checked').map(function(i, e) { 
    return $(e).val(); 
});

答案 5 :(得分:1)

试试这个..

var listCheck = [];
console.log($("input[name='YourCheckBokName[]']"));
$("input[name='YourCheckBokName[]']:checked").each(function() {
     console.log($(this).val());
     listCheck .push($(this).val());
});
console.log(listCheck);

答案 6 :(得分:0)

var nameCheckBoxList = "myCheckListName";
var selectedValues = $("[name=" + nameCheckBoxList + "]:checked").map(function(){return this.value;});

答案 7 :(得分:0)

你可以试试这个......

(randomlist 5 10)
=> '(10 7 1 4 8) ; results will vary, obviously