serializeArray()不会获取页面加载后添加的表单字段

时间:2011-07-29 20:34:43

标签: javascript jquery forms

serializeArray()不会选择在页面加载后添加的表单字段(通过#jQuery)。为什么?我该怎么解决?

编辑:请参阅下面的代码。我是javascript / jquery的新手,因此我想我错过了一些非常明显的东西(虽然在谷歌上找不到它)。

通过运行addFormRow(在HTML中作为OnClick)添加了新行。新行将添加到页面中,但在我在控制台中运行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 :(得分:0)

确保您在页面上添加的字段加载到您尝试搜索的相同表单元素中。

答案 1 :(得分:0)

听起来你想在页面加载时立即序列化数组,你是否尝试过jQuery库中的触发器函数。或者使用原始js并执行

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

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

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