获取隐藏的复选框的值

时间:2014-05-12 01:51:51

标签: jquery html checkbox datatables

我可以通过此查询获取已选中复选框的值:

vals = $('input[name="checkedID"]:checked').map(function() {
    return this.value;
}).get().join(',');

但是,我怎样才能获得隐藏选中复选框的值?我试过这个,但它不起作用:

vals = $('input:hidden[name="checkedID"]:checked').map(function() {
    return this.value;
}).get().join(',');

谢谢!

2 个答案:

答案 0 :(得分:1)

复选框是否隐藏无关紧要。

$('input:hidden[name="checkedID"]:checked').val();

使用:

<input type="checkbox" name="checkedID" value="Yes" style="display:none;" checked>

回归我的期望。以下是它的一小部分:http://jsbin.com/kixujoci/2/

请注意,:hidden如果输入因其被父母之一隐藏而无法显示,则无效。

答案 1 :(得分:1)

我在http://datatables.net/forums/discussion/17382/form-checkbox-values-not-posting找到了这个答案。我最终使用下面的脚本(从源代码进行了一些修改):

<script type="text/javascript">
    $(document).ready( function () {
        var oTable = $('#idparent').dataTable();

        $('#form').submit(function () {
            $("input[name='checkedID[]:checked']").remove();
            $("input:checked", oTable.fnGetNodes()).each(function(){
                $('<input type="checkbox" id="checkedID" class="checkedID" name="checkedID[]" ' + 'value="' +
                  $(this).val() + '" type="hidden" checked="checked" />')
                    .css("display", "none")
                    .appendTo('#form');
            });
        });
    } );   
</script>

复选框的值需要在提交时重新附加到表单。上面的代码导致了冗余值,因此您需要在此之后删除重复值。