如何从所有输入中获取所有值?

时间:2013-02-23 20:45:25

标签: jquery

我有输入

<input name="v[]" value="1" type="checkbox">
<input name="v[]" value="2" type="checkbox">
<input name="v[]" value="3" type="checkbox">
<input name="v[]" value="4" type="checkbox">

使用此代码检查

$(document).on('click',"tbody tr", function() {
    if ($(this).hasClass('info')) {
        $(this).removeClass('info');
        $(this).find('input[name="v[]"]').prop('checked', false);
    } else {
        $(this).addClass('info');
        $(this).find('input[name="v[]"]').prop('checked', true);
    }
});

我希望获取带有值的已检查输入数组。我怎么能这样做?

感谢。

3 个答案:

答案 0 :(得分:3)

var values = $.map($('input[name="v[]"]:checked'), function(el,i) { return el.value });

FIDDLE

答案 1 :(得分:0)

.serializeArray应该这样做

$('input').on('click', function(){
    console.log($('input').serializeArray());
});

http://jsfiddle.net/cbm4T/

获取checkbox类型的输入的示例 http://jsfiddle.net/cbm4T/1/

$('input').on('click', function(){
    console.log($('input[type=checkbox]').serializeArray());
});

答案 2 :(得分:0)

var values = $.map($('input[name="v[]"]:checked'), function(obj) {
              return $(obj).val();

});

编辑:其他人打败了我。

如果由于某种原因你想要反过来。未单击的复选框及其值。

var values = $.map($('input[name="v[]"]:not(:checked)'), function(obj) {
              return $(obj).val();

});