将数组推入现有的表单数据以进行AJAX调用

时间:2013-10-08 17:21:12

标签: javascript ajax arrays

我正在尝试将现有的字符串数组追加/推送到现有的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,

以下几乎可以正常工作,但发布的帖子数据为ListRFID []:而不是ListRFID:

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

任何人都知道正确的Javascript方法可以让它工作吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

您想要做的就是将两个或多个对象的内容合并在一起。

因此,在您的Ajax调用数据属性中将是:

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

在此处阅读更多内容:http://api.jquery.com/jQuery.extend/