序列化jQuery中的复选框
我有一个jQuery表单,其中创建了一系列复选框:序列化jQuery中的复选框,jquery,checkbox,Jquery,Checkbox,我有一个jQuery表单,其中创建了一系列复选框: <?php <form method="post" id="b-form" action="../createb.php"> for ($i=0; $i<$request_count; $i++){ <div class="request-check"> <table> <tr> <
<?php
<form method="post" id="b-form" action="../createb.php">
for ($i=0; $i<$request_count; $i++){
<div class="request-check">
<table>
<tr>
<td><input type="checkbox" name="show_request[]" value="request".$i." checked="checked"/>select request</td>
</tr>
</table>
</div>
}
目前createb.php正在测试表单
$requests = $_POST['show_request'];
$request_count = count($requests);
echo 'count: '.$request_count;
echo $requests[0];
问题是serialize函数只看到第一个复选框,并指示是否已选中该复选框。它看不到任何其他复选框。有人知道为什么其他复选框没有序列化,以及如何处理吗
谢谢
David没错,因为所有复选框都有名称
名称和任何id
来分隔它们
试着像这样创建它们:
<input
type = "checkbox"
id = "ckb_<?php echo $i ?>"
name = "ckb_<?php echo $i ?>_show_request[]"
value = "request".$i."
checked = "checked"/> select request
您的选择器错误
尝试:
对于仅获取选中输入,请使用:
$('#b-form input:checkbox:checked').serialize()
引用自:仅将“成功控件”序列化为字符串(使用$(form).serialize()时)或数组($(form).serializeArray())。复选框和单选按钮(输入类型为“单选”或“复选框”)中的值仅在选中时才包括在内
您可以使用类似的方法来模拟与预期类似的行为:
var myCbValuesArray = $("input:checkbox").map(function(){
return $(this).is(":checked");
}).get();
这对你有用
您可以通过以下方式获取选定的复选框值:
$("input[type='checkbox']:checked").serialize();
您还可以将脚本生成的HTML代码粘贴到这里吗?你粘贴在这里的代码对我来说很奇怪?!
var myCbValuesArray = $("input:checkbox").map(function(){
return $(this).is(":checked");
}).get();
$("input[type='checkbox']:checked").serialize();