我通过使用jquery迭代html元素是输入字段,但是我得到了错误。这是我的代码:
$(".submit_button").on("click touch", function(e){
e.preventDefault();
var formdata = {};
$(this).closest("div")
.find("[data-field]")
.each(function(i, val){
var field = $(this).attr("data-field");
if($(this).is("[data-group]")) {
var group = $(this).attr("data-role");
formdata[group][field] = $(this).val() || "";
} else {
formdata[field] = $(this).val() || "";
}
});
alert(JSON.stringify(formdata));
return;
});
当我点击提交按钮时,firebug中的错误控制台说:
formdata[group] is undefined
应如何编写,以便正确运行?
答案 0 :(得分:1)
您必须定义formdata [group]。测试一下:
$(".submit_button").on("click touch", function(e){
e.preventDefault();
var formdata = {};
$(this).closest("div")
.find("[data-field]")
.each(function(i, val){
var field = $(this).attr("data-field");
if($(this).is("[data-group]")) {
var group = $(this).attr("data-role");
if(!(group in formdata)){ //if group is not present in formdata, define it
formdata[group] = {};
}
formdata[group][field] = $(this).val() || "";
} else {
formdata[field] = $(this).val() || "";
}
});
alert(JSON.stringify(formdata));
return;
});