2013-10-08 37 views
0

我試圖將現有的字符串數組附加到現有的HTML表單數據上。 發帖手動像這樣工作得很好:將數組推入現有表單數據以進行AJAX調用

$(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方法來得到這個工作?非常感激。

回答

0

看起來你想要做的是將兩個或多個對象的內容合併在一起。

因此,在你的Ajax調用的數據屬性是:

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

在這裏閱讀更多:http://api.jquery.com/jQuery.extend/

+0

從之前相反的問題。現在它發送PARAMS作爲 0:[對象的對象] 1:[對象的對象] ListRFID:a797ad3e-7d2f-E311-be87-c8f7334c3af0 ListRFID:a797ad3e-7d2f-E311-be87-c8f7334c3af1 – ktan

+0

@JeffTan更新了代碼。現在試試。 – iambriansreed

+0

仍然在做同樣的事情:( – ktan