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!");
}
});
}
答案 0 :(得分:0)
确保您在页面上添加的字段加载到您尝试搜索的相同表单元素中。
答案 1 :(得分:0)
听起来你想在页面加载时立即序列化数组,你是否尝试过jQuery库中的触发器函数。或者使用原始js并执行
window.onload = function() {
doSomething();
};