我有一个应该
的功能这就是我所拥有的,它似乎应该有效,但是当我记录字符串化版本时,我得到的只是[]。
function get_data_from_form() {
var data = [];
var inputs = $('form').find('input');
$.each(inputs, function (index, value) {
var name = $(this).attr('name');
data[name] = value; // How should this change?
});
console.log('stringified data: ' + JSON.stringify(data)); // -> []
}
所需的输出应该是这样的:“{fname:'turd',lname:'ferguson'}”
我做错了什么?是否更容易创建一个字符串并连接名称/值对?
答案 0 :(得分:3)
您应该定义一个对象,而不是一个数组
var data = {};
data[name] = value;
答案 1 :(得分:2)
您的value
提取字段错误 - 在.each
调用中,value
参数是当前元素,而不是其值。此外,您需要捕获键/值存储中的字段,即Object
而不是Array
。试试这个,而不是:
var data = {}; // NB: *not* an array
$('form :input').each(function() {
data[this.name] = this.value;
});