jquery使用方括号添加表单元素

时间:2013-05-14 09:42:14

标签: jquery append square-bracket

我正在尝试动态地将隐藏的输入字段添加到其ID /名称中带有方括号的表单中:

<input type="hidden" name="myField[]" id="myField[]" value="someValue" />

添加工作正常(至少firebug显示正确添加的字段)。但是当我尝试在接收PHP脚本中访问后置数组时,字段名最终为myField%5B%5D并且数组丢失。

当手动将这些字段添加到HTML代码中时,我最终在我的postvars中有一个很好的数组。

我该如何解决这个问题?

[编辑]

这是我添加字段的方式:

$('#theForm').append(
                $('<input/>')
                    .attr('type', 'hidden')
                    .attr('name', 'myField[]')
                    .attr('id', 'myField[]')
                    .val(value)
            );

我也尝试使用像\[\]这样的转义字符 - 以及\\[\\] - 无济于事

2 个答案:

答案 0 :(得分:0)

您可能需要阅读 this 并尝试此操作:

$('#theForm').serialize().replace('%5B%5D', '[]') 

或者

$.param(obj, true);
$.post(url,serializedObj,function(){});

true中的$.param表示应该使用序列化对象的传统方法。传统方法在遇到相同的参数名称时不使用方括号。

答案 1 :(得分:0)

试试这个

$('#theForm').append('<input type="hidden" name="myField[]" id="myField[]" value="someValue" />');