2015-09-02 48 views
2

我想發送一些數據的AJAX腳本,通常我創建一個表單標籤,並給予形式像這樣的ID:對某些領域的Ajax POST數據ID

<form id="myForm"> 

然後,我只是添加以下在阿賈克斯:

data: $('#myForm').serialize(), 

這將從我的表單發送所有表單數據。然而,這一次,我想沒有表單標籤運行它,而是我有唯一的ID的兩個領域是這樣的:

<input type="text" id="first-name" name="first-name"> 
<input type="text" id="last-name" name="last-name"> 

我想僅從這兩個字段發送數據。所以,我已經把下面的代碼:

data: $("#first-name,#last-name"), 

它似乎工作,但不知道這是否是這樣做的正確的和兼容的方式。

感謝

回答

0

您必須發送數據作爲序列化的字符串:數據:$("#first-name,#last-name").serialize();

1

您可以動態創建的對象,像這樣:

... 
data: { 
    'first_name': $('#first_name').val(), 
    'last_name': $('#last_name').val() 
}, 
... 

$.ajax()可以將數據自動如果尚未轉換一個字符串,這就是爲什麼你不應該在這裏使用serialize()

+0

是這種方法比建議$一個更好的選擇(「#直呼其名,#最後的名字」)。連載() 方法? – Ahmed

+0

這是一個選擇問題......這樣你就可以控制將要提交給服務器的「密鑰」,例如,你的輸入可以有一個名字,你可以發送完全不同的名字給服務器。 – vitozev

0

jQuery API

數據 類型:PlainObject或字符串 發送到與請求的服務器A普通對象或字符串。

在這種情況下,我想你可以使用PlainObjectunixarmypsylogic說。

0

您不需要使用序列化。您可以通過張貼DATAS致電領域

data : { 
first_name: $('#first-name').val(), 
last_name: $('#last-name').val(), 
}, 

我希望這有助於:)