serializeArray () не выбирает поля формы, которые были добавлены после загрузки страницы - PullRequest
0 голосов
/ 30 июля 2011

serializeArray () не выбирает поля формы, которые были добавлены после загрузки страницы (#jQuery).Зачем?Как я могу разрешить?

Редактировать: см. Код ниже.Я совершенно новичок в javascript / jquery и, следовательно, полагаю, мне не хватает чего-то совершенно очевидного (хотя я не смог найти его в Google).

Новая строка была добавлена ​​путем запуска addFormRow (как OnClick в HTML).Новая строка добавляется на страницу, но не используется, когда я запускаю submitFormJSON (или $ ('form: input') в консоли).

function addFormRow(){
    var newrow = document.createElement('article');
    newrow.innerHTML = 'Name: <input type="text" name="rowName" value="" /> Description: <input type="text" name="rowDescription" value="" /> Type: <select name="rowType"><option value="text">Text</option><option value="textarea">Textarea</option><option value="email">Email</option><option value="checkbox">Checkbox</option><option value="radio">Radio button</option><option value="date">Date</option><option value="range">Range</option><option value="url">URL</option><option value="number">Number</option><option value="time">Time</option><option value="dropdown">Drop Down</option></select>';
    document.getElementById("section").appendChild(newrow);
}

function submitFormJSON(strURL, strType) {
        var objFormValues = {};
        $.each($('form').serializeArray(), function(key,value) {
            objFormValues[value.name] = value.value;
        });
        $.ajax({
            type: strType,
            url: strURL,
            dataType: 'json',
            data: objFormValues,
            success: function(msg) {
                alert( "Data Saved!");
            }
        });
    }

Ответы [ 2 ]

0 голосов
/ 30 июля 2011

Звучит так, как будто вы хотите сериализовать массив сразу после загрузки страницы, пробовали ли вы использовать функцию триггера из библиотеки jQuery. Или используйте raw js и сделайте

window.onload = function() {
  doSomething();
};

https://developer.mozilla.org/en/DOM/window.onload

http://api.jquery.com/trigger/

0 голосов
/ 30 июля 2011

Убедитесь, что поля, добавленные на странице, загружаются в тот же элемент формы, который вы пытаетесь найти.

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