如何在jQuery中序列化数组复选框

时间:2011-10-07 18:33:01

标签: jquery serialization

我找不到一个类似问题的线程很尴尬...... 那么,我们假设我有一个带有复选框的标准HTML表单(将在PHP中解析为数组),请注意name属性中的括号

<form class="myForm" action="evaluate.php" method="get">
    <input type="text" name="name" value="" placeholder="Your name"/>
    <input type="checkbox" name="facts[]" value="1" id="fact-1"/><label for="fact-1">Fact 1</label>
    <input type="checkbox" name="facts[]" value="2" id="fact-2"/><label for="fact-2">Fact 2</label>
    ...
</form>

现在我希望jQuery使用以下命令序列化表单内容:

alert($('.myForm').serialize());

预期结果将是这样的:

name=MyName&facts[]=1&facts=[]=2&...

但不幸的是它没有,因为括号“[]”被转义:

name=MyName&facts%5B%5D=1&facts=%5B%5D=2&...

除了编写自己的序列化脚本外,有没有人能解决这个问题?

1 个答案:

答案 0 :(得分:3)

或尝试:

alert(decodeURI('MyName&facts%5B%5D=1&facts=%5B%5D=2&'));

它将解码所有转义字符,包括[]