如何通过jquery post发送多字段值

1 jquery

我知道如何通过jquery post方法发送$ .post("test.php",{name:"John",time:"2pm"});

但是,如果我的表单字段名称是数组

<input type=text name="n1[]" id="n1[]" value='12345"> 
<input type=text name="n1[]" id="n1[]" value="14454">
Run Code Online (Sandbox Code Playgroud)

如何通过jquery post方法将这两个字段值发送到url?

bob*_*nce 5

您可以将数组作为值传入对象:

{name: 'John', 'nl[]': ['12345', '14454']}
Run Code Online (Sandbox Code Playgroud)

(这在ajax中有记录,但也适用于帖子.)

但是,如果你可以使用表单的serialize方法来创建数据字符串,那么你可以让jQuery担心它是正确的.jQuery(和HTML一般)不关心字段控件名称末尾是否有方括号.这只是用来告诉PHP它应该期望多个值的hack.

注意nl[]是无效的ID.除了验证/兼容性问题之外,它还会使您难以编写选择器来获取,因为方括号$('#nl[]')意味着其他东西.在这种情况下你可以反斜杠 - 逃避它们,虽然有些地方jQuery的regex-hack选择器解析会破坏这样的东西.

另外,id页面上不能有两个相同的元素.id有一个标识页面上的单个元素的工作,其中包含一个简单的字母数字*名称,用于编写脚本和样式表; 它不是name表单字段属性的替代或替代,表单字段是要发送到服务器的控件名称.

(*:加上.-_:虽然你通常不想使用:,但.也会使编写选择器很烦人.)

[最后一个简单的拼写错误:你的第一个value错误引用.]