如何在javascript中将表单中id的值作为数组传递?

时间:2015-03-16 11:57:36

标签: javascript json

如何将输入表单元素的值传递给数组?

var input = [{ 
    'FirstName': "$('#txtFirstName').val()", 
    'LastName': "$('#txtLastName').val()", 
    'City': "$('#txtCity').val()", 
    'EmailID': "$('#txtEmailID').val()"
}];
input = JSON.stringify(input); 

我尝试了上面的代码,但它不起作用?如何构建键值对表单数组以及如何使用每个函数循环它?

2 个答案:

答案 0 :(得分:1)

你应该这样执行:

var input = [{ 'FirstName': $('#txtFirstName').val() }];

你的jQuery表达式不应该是一个字符串!


结果JS四你应该看起来像那样:

var input = [{ 
    'FirstName': $('#txtFirstName').val(), 
    'LastName': $('#txtLastName').val(), 
    'City': $('#txtCity').val(), 
    'EmailID': $('#txtEmailID').val() }];

input = JSON.stringify(input); 

考虑使用jQuery formSerialize方法收集所有表单数据:

$('#myFormId').formSerialize();

答案 1 :(得分:1)

您可以使用我正在使用的以下辅助函数来实现相同的功能 -

$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

工作小提琴 - http://jsfiddle.net/sxGtM/3/