我还需要通过 $.ajax() 方法传递一些表单元素和一个数组。如何通过ajax发送序列化和数组?
我的代码如下:
function loadgraficosajax(){
var arr = ['331234','142323','327767'];
var data = $('#p-form').serialize;
$.ajax({
type: "POST",
url: "/page/show",
data: data,
dataType : 'html',
success: function (msg) {
$(document).ajaxComplete(function (event, request, settings) {
$('.has-error').removeClass('has-error');
$(document).off('ajaxComplete').off('ajaxSend');
$('#addajax').html(msg);
});
}
});
}
最佳答案
serialize
是 jQuery 中的方法,而不是属性,因此您应该这样调用它:
var data = $('#p-form').serialize();
要传递数组,您需要使用 param
方法并将数组修改为位于对象内部,其中数组名称是对象属性:
var arr = { arr: ['331234','142323','327767'] };
var data = $('#p-form').serialize();
data += '&' + $.param( arr );
param
会将您的对象转换为序列化字符串:
console.log($.param( arr )); // "arr[]=331234&arr[]=142323&arr[]=327767"
关于javascript - 通过 $.ajax() 发送表单元素和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37880687/