我完全搞砸了我的代码和应用程序逻辑,因为我忘记了.serialize()只给我表单的选中元素(复选框)。我真的需要所有元素,因为我必须以正确的顺序重新创建元素的小数组。
假设我有10个id/名称为box1到box10的复选框-现在只有复选框4和6被选中,因此输出为:
…,box4 = on& box6 =……但我还需要&box1=(无论什么只是不像"on",所以我可以不同)和其他8个框:/.
我还应该提到,我有输入类型文本字段和文本区域-所以这是一个混合的东西。我不只有复选框。
任何想法?
对
一个解决方案是这样做:
<?php
foreach(range(1, 10) as $h)
echo '<input type="hidden" name="box'.$h.'" value="false" />';
?>
插入复选框之前。取代"false"。
如果复选框被选中,它的值将覆盖隐藏元素
不要使用.serialize()。遍历所有检查并自己创建查询字符串。
混合解决方案:
var query1='', query2=[];
query1=$('#myForm').serialize();
$('#myform :checkbox').not(':checked').each(function(){
query2.push($(this).attr('name')+'=off');
});
query1+='&'+query2.join('&');
或者类似的