Как сериализовать флажок массива в jQuery - PullRequest
1 голос
/ 07 октября 2011

Довольно неловко, что я не смог найти поток с похожей проблемой ... Что ж, давайте предположим, что у меня есть стандартная HTML-форма с флажками (которая будет анализироваться как массив в PHP), обратите внимание на скобки в атрибуте имени:

<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 Ответ

3 голосов
/ 07 октября 2011

или попробуйте:

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

будет декодировать все экранированные символы, включая []

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...