将数据添加到JQuery表单

时间:2017-08-09 17:56:13

标签: javascript jquery

首先我承认我在js上非常糟糕,刚刚开始。我在存储库中有这个片段:

function sendReport() {
    $.post($('#reportForm').attr('action') + '/post', $("#reportForm").serialize()).done(function() {
      reportManager.run();
    });
}

我想向它添加数据。我希望接收帖子的Web服务接收额外的键/值对。我试过像

这样的东西
var data = $('#reportForm').serializeArray();
data.push({name: 'stuff', value: 'blaha'});

$.post(data, $("#reportForm").serialize()).done(function() {
    reportManager.run();
});

根本没有工作,我真的很感激任何帮助。

编辑:

尝试做下面的建议,没有用。试过这只是为了验证新参数没有破坏任何东西:

//data to post
var data = $('#reportForm').serializeArray();

//url to post
var url = $('#reportForm').attr('action') + '/post';

//options required for jQuery.post
var options = { "data":data, "url": url };

$.post(options).done(function() {
    reportManager.run();
});

这不起作用。我在服务器上收到这样的错误:

noHandlerFound No mapping found for HTTP request with URI [/[object Object]]

我正在考虑代码中的其他内容可能会使用某些隐式行为,但我发现尝试上面的代码(甚至不添加新数据)会破坏当前的工作行为,这很奇怪。

1 个答案:

答案 0 :(得分:2)

您没有为post方法提供uri参数,您应该使用类似于:

的内容
//data to post
var data = $('#reportForm').serializeArray();
data.push({name: 'stuff', value: 'blaha'});

//url to post
var url = $('#reportForm').attr('action') + '/post';

//options required for jQuery.post
var options = { "data":data, "url": url };

$.post(options).done(function() {
    reportManager.run();
});