Сериализация формы не работает в jQuery
не могли бы вы взглянуть и помочь мне понять, где я иду не так с этим? Вот ссылка jsfiddle:http://jsfiddle.net/Hitman666/QcEkj/1/ но и вот этот код
HTML:
<form action="#" id="gamesForm">
<p>
<input id="gName" type="text" class="medium" />
<span class="notification information">Game name</span>
</p>
<p>
<span class="notification information">Enabled:</span>
<input id="gEnabled" type="checkbox" />
</p>
<br />
<!--Additional data for extra type-->
<div id="extraAdditionalData" class="hidden">
<p>
<input id="rRacers" type="text" class="medium" />
<span class="notification information">Racers</span>
</p>
<p>
<input id="rVideoSet" type="text" class="medium" />
<span class="notification information">Video set</span>
</p>
</div>
</form>
<a href="#" id="saveConfiguration" class="graybuttonBig">Save everything!</a>
JavaScript:
$(document).ready(function(){
$("#saveConfiguration").click(function(){
alert( $("form").serialize() );
});
});
все, что я получаю, это пустая строка.
6 ответов:
вы должны дать элементы вида
name
s!это не зависит от jQuery. Каждый элемент формы должен иметь
name
рассматривается для подачи формы как управления:успешный контроль "действителен"для представления. Каждый успешный контроль имеет свой имя управления в сочетании с текущее значение в составе представленных набор данных формы. Успешный управление должно быть определено в пределах
FORM
элемент и должен быть имя управления.jQuery просто игнорирует те элементы, которые не имеют имени (или, в зависимости от того, как он получает элементы, он может даже не видеть их, поскольку сама форма не имеет ссылки на них).
что-то еще, что мешает
serializeArray()
сериализации правильноdisabled
входы.serializeArray
не сериализует отключенные входы, во многом так же, как отключенные входы не отправляются с формой.успешный контроль "действителен"для представления.
- управления отключен не может быть успешным.
пожалуйста, добавьте
name
в поле ввода:<input type='text' name='give_some_name' />
на эта скрипка я добавил
name
и он работает нормально.
Я думаю, что проблема в том, что вы пытаетесь выбрать форму, как
$("form");
но это эквивалентно
getElementsByTagName("form");
Это возвращает массив объектов.
Таким образом, вместо этого вы можете использовать #id селектор, или использовать индекс для доступа к форме. Надеюсь, это поможет.