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