将数组传递给json.stringify
我正在尝试将数组传递给json.stringify,但返回的值将返回空。
JSON.stringify({ json: data }) // returns `{"json":[]}`
这里将是数据的内容:
data[from] = "bfleming@test.com" data[to] = "test@test.com" data[message] = "testmessage"
jQuery的:
function SubmitUserInformation($group) { var data = {}; data = ArrayPush($group); $.ajax({ type: "POST", url: "http://www.mlaglobal.com/components/handlers/FormRequestHandler.aspx/EmailFormRequestHandler", data: JSON.stringify({ json: data }), dataType: 'json', contentType: "application/json; charset=utf-8", cache: false, success: function (msg) { if (msg) { $('emailForm-content').hide(); $('emailForm-thankyou').show(); } }, error: function (msg) { form.data("validator").invalidate(msg); } }); } function ArrayPush($group) { var arr = new Array(); $group.find('input[type=text],textarea').each(function () { arr[$(this).attr('id')] = $(this).val(); }); return arr; }
data = ArrayPush($group);
将data
重新分配为数组,因此所有expando属性都不会被字符串化。
在您的ArrayPush方法中,更改
var arr = new Array();
至
var obj = { };
应该将arr
声明为ArrayPush
方法中的对象,因为您没有像数组一样使用它。 在函数内部,你可以使用this.id
和this.value
你不必创建jQuery
对象。 试试这个
function ArrayPush($group) { var arr = {}; $group.find('input[type=text],textarea').each(function () { arr[this.id] = this.value; }); return arr; }