如何将fom的输入附加到jquery Ajax Post的现有数据参数列表中

时间:2016-02-01 13:57:48

标签: jquery datatables datatables-1.10

我正在使用最新的jquery datatables 1.10 plugin

在我的ajax调用中,我有以下标准将数据传递给我的asp.net mvc控制器

"ajax": {
            "type": "POST",
            "url": '/myUrl/MyMethod/',
            "contentType": 'application/json; charset=utf-8',
            "data": function (data) { return data = JSON.stringify(data); }
        },

我的页面上还有一个带有各种输入元素的表单。表单的ID为form1

我想要做的是将所有这些表单元素的值附加到我的ajax调用的数据参数中,以便我的服务器可以将其拾取。

我不想丢失数据表传递的当前数据。我想将表单输入元素附加到此JSON数据。

作为一种解决方法,我现在在url中单独传递form1输入元素的值,但这远非理想,你可以看到。

"ajax": {
            "type": "POST",
            "url": '/myUrl/MyMethod/?myselect='+$('#myselect').val(),
            "contentType": 'application/json; charset=utf-8',
            "data": function (data) { return data = JSON.stringify(data); }
        },

问题:

如何修改该行:

"data": function (data) { return data = JSON.stringify(data); }

附加#form1个输入,而不是一次明确指定一个输入。

1 个答案:

答案 0 :(得分:0)

您可以使用方便的.serializeArray函数。

所以对于jquery代码:

var form_data = $("#form1").serializeArray();

//I'm just assuming here that 'table_data' is an existing array with index/values in it from your datatables

 $.each(form_date,function(index,value){
     table_data[value['name']] = value['value']
 })

 //And now both sets of data are merged and you can just pass table_data to your ajax call