Javascript 将数组推送到现有表单数据上以进行AJAX调用

Javascript 将数组推送到现有表单数据上以进行AJAX调用,javascript,ajax,arrays,Javascript,Ajax,Arrays,我试图将现有的字符串数组附加/推送到现有的html表单数据上。 像这样手动发布效果很好: $(function () { $('#submitForm').submit(function (evt) { //prevent the browsers default function evt.preventDefault(); //grab the form and wrap it with jQuery

我试图将现有的字符串数组附加/推送到现有的html表单数据上。 像这样手动发布效果很好:

$(function () {
        $('#submitForm').submit(function (evt) {
            //prevent the browsers default function
            evt.preventDefault();
            //grab the form and wrap it with jQuery
            var $form = $(this);
            //if client side validation fails, don't do anything
            if (!$form.valid()) return;
$.ajax({
                type: $form.prop('method'),
                url: $form.prop('action'),
                data: {
                    'ListRFID': GetSelectedItems(), 
                    'Printer': 'e38911b2-1a2d-e311-be86-c8f7334c3af0',
                    'ExtraLine1': ''},
                dataType: "json",
                traditional: true,
                success: function (response) {
                    document.body.innerHTML = response;
                }
            });
    });
});
如果我执行以下操作并用它替换AJAX的数据,它将不起作用。它发送一个未定义的变量来代替ListRFID

var temp = { 'ListRFID': GetSelectedItems() };
var data = $form.serializeArray();
data.push(temp);
//AJAX data: data,
以下操作几乎可以正常工作,但将post数据作为ListRFID[]发送:而不是ListRFID:

data: $form.serialize() + '&' + $.param({ 'ListRFID': GetSelectedItems() }),

有人知道正确的Javascript方法来实现这一点吗?非常感谢。

看起来您要做的是将两个或多个对象的内容合并在一起

因此,在Ajax调用中,数据属性应该是:

data: $.extend( {}, $form.serializeArray(), { 'ListRFID': GetSelectedItems() } ),

请在此处阅读更多信息:

与以前相反的问题。现在它以0:[object object]1:[object object]ListRFID:a797ad3e-7d2f-e311-be87-c8f7334c3af0 ListRFID:a797ad3e-7d2f-e311-be87-C8F7334C3AF1的形式发送参数,直到执行相同的操作:(您遇到了不同的问题。您需要一个数据对象,其中的键作为名称,值作为值。您需要转换
.serializeArray()
result,将对象列表合并为单个对象。这是一个完全不同的问题。这个问题有多个答案:谢谢您的帮助!您的数组部分工作正常,但我的问题还询问了如何将表单数据与数组相结合。我的表单数据只是一个通用表单。我通过循环列表并将其推到serializeArray()
var data=$form.serializeArray();var items=GetSelectedItems();for(var i=0;i
然后是data:data,谢谢!