Сериализация jQuery не работает - PullRequest
15 голосов
/ 31 января 2012

Я баловался с сериализацией формы, но удивительно, что она не сериализовала форму.Вот код:

<div id="content">
</div>
<form  id= "myform">
    <input type="text" id="inp"value="mytext">
    <input type="button" id="btn" value="serialize"/>
</form>

Вот код jQuery, с которым я работаю:

$("form").submit(function(e){
    e.preventDefault();
    var v= $(this).serialize();
    console.log(v);
});

Вот скрипка

Ответы [ 2 ]

54 голосов
/ 31 января 2012

Вам нужен атрибут name в ваших полях input.В противном случае они игнорируются jQuery .serialize().

Вот цитата из документов :

Примечание: только "успешные элементы управления" сериализуются встрока.Значение кнопки отправки не сериализуется, так как форма не была отправлена ​​с помощью кнопки. Чтобы значение элемента формы было включено в сериализованную строку, элемент должен иметь атрибут name .Значения из флажков и переключателей (входы типа «радио» или «флажок») включаются, только если они отмечены.Данные из элементов выбора файлов не сериализуются.

Вот ваша скрипка с атрибутом имени: http://jsfiddle.net/6fgUg/28/

3 голосов
/ 19 марта 2014

Вы должны дать имя входному элементу HTML, например:

<form id="myform"> 
    <input type="text" id="inp" name="inp" value="mytext">
    <input type="button" id="btn" name="btn" value="serialize"/>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...