如何附加fom';s输入到jquery Ajax Post';s现有数据参数列表
我正在使用最新的如何附加fom';s输入到jquery Ajax Post';s现有数据参数列表,jquery,datatables,datatables-1.10,Jquery,Datatables,Datatables 1.10,我正在使用最新的jquerydatatables 1.10插件 在我的ajax调用中,我有以下标准将数据传递给我的asp.net mvc控制器 "ajax": { "type": "POST", "url": '/myUrl/MyMethod/', "contentType": 'application/json; charset=utf-8', "data": function (data) { r
jquerydatatables 1.10插件
在我的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调用的数据参数中,这样我的服务器就可以接收它
我不想丢失datatables传递的当前数据。我想将表单输入元素附加到此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
输入,而不一次明确指定一个输入。您可以使用handy.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
您可以编写jquery的扩展来将表单序列化对象转换为json,示例如下:代码“data”中的函数(data){return{data:json.stringify(data),form1:json.stringify($('form').serializeObject())}