2015-09-02 49 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(), 
}, 

我希望这有助于:)