javascript - jquery对象密钥对未定义

时间:2015-09-26 12:48:37

标签: javascript jquery object

我通过使用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

应如何编写,以便正确运行?

1 个答案:

答案 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;
});