Подтвердить что ты не робот

Сериализованная форма не работает в 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() );   
    });
});  

Все, что я получаю, это пустая строка.

4b9b3361

Ответ 1

Вы должны указать свои элементы формы name s!

Это не зависит от jQuery. Каждый элемент формы должен иметь name для рассмотрения формы как успешный контроль:

Успешное управление является "действительным" для представления. Каждый успешный элемент управления имеет имя управления в паре с его текущее значение как часть представленного набора данных формы. Успешный контроль должен быть определен в FORM и должен иметь имя управления.

jQuery просто игнорирует те элементы, которые не имеют имени (или, в зависимости от того, как он получает элементы, он может даже не видеть их, поскольку сама форма не имеет к ним ссылки).

Ответ 2

Что-то еще, что предотвращает корректную сериализацию serializeArray(), - это входы disabled. serializeArray не сериализует отключенные входы, во многом аналогично тому, как отключенные входы не отправляются с формой.

Успешное управление является "действительным" для отправки.

  • Элементы управления отключены не могут быть успешными.

Источник

Ответ 3

Пожалуйста, добавьте name в поле ввода:

<input type='text' name='give_some_name' />

В эту скрипку я добавил name, и она работает нормально.

Ответ 4

Я думаю, проблема в том, что вы пытаетесь выбрать форму, например

$("form");

Но это эквивалентно

getElementsByTagName("form");

Возвращает массив объектов.
Таким образом, вместо этого вы можете использовать селектор #id или использовать индекс для доступа к форме. Надеюсь, это поможет.

Ответ 5

Прежде всего, вам нужно присвоить атрибут name всем элементам управления вводом, таким как текстовые поля и т.д. Затем, пожалуйста, проверьте, не конфликтует ли ваш идентификатор или нет, у меня был такой же идентификатор для формы и один раздел, где была моя проблема.

Ответ 6

Вы не указали правильную ссылку на форму в своем JavaScript

Попробуйте перейти на это:

$('#gamesForm').serialize();

Ответ 7

И ваша ссылка неверна. Попробуйте:

$("#gamesForm").serialize();