如何使用jQuery .serialize()为GET参数获得成功和不成功的控件?

时间:2011-09-16 15:07:21

标签: javascript jquery

我完全搞砸了我的代码和应用程​​序逻辑,忘记了.serialize()只给了我表单的选中元素(复选框)。我真的需要所有元素,因为我必须以正确的顺序重新创建具有元素的小数组。

假设我有10个带有id / names box1到box10的复选框 - 现在只选中复选框4和6,因此输出为:

...& box4 = on& box6 = on ...但我还需要& box1 =(不管是什么,只是不同于“on”,所以我可以有所不同)和其他8个框:/。

我shoudld还提到我有输入类型的文本字段和textareas - 所以这是一个混合的东西。我没有复选框。

有什么想法吗?

问候

2 个答案:

答案 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('&');

或类似的东西