javascript - 通过 $.ajax() 发送表单元素和数组

标签 javascript java jquery ajax

我还需要通过 $.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/

相关文章:

javascript - 是否可以从外部样式表中提取所有样式并将它们放在同一页面上?

javascript - 这里正确的语法是什么?

javascript - HTML div 切换可见性不起作用

java - Selenium Webdriver java rootWebElement.findElements 忽略子子项?

java - 代码的正则表达式

jQuery 动画 : Stop Animating Once Mouse Out

javascript - 在移动设备上将文本区域固定在页面底部(带键盘)

javascript - 如何在 React 中将所有数组项重新排序到特定索引?

java - JFrame 加载延迟

Jquery 选择具有相同 id 的容器 - IE 7 问题