我找不到一个类似问题的线程很尴尬...... 那么,我们假设我有一个带有复选框的标准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&...
除了编写自己的序列化脚本外,有没有人能解决这个问题?
答案 0 :(得分:3)
或尝试:
alert(decodeURI('MyName&facts%5B%5D=1&facts=%5B%5D=2&'));
它将解码所有转义字符,包括[]