我可以通过此查询获取已选中复选框的值:
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(',');
谢谢!
答案 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>
复选框的值需要在提交时重新附加到表单。上面的代码导致了冗余值,因此您需要在此之后删除重复值。