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

时间:2009-11-01 03:05:58

标签: 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">

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

2 个答案:

答案 0 :(得分:5)

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

{name: 'John', 'nl[]': ['12345', '14454']}

(记录在ajax,但也适用于post。)

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

注意nl[]是无效的ID。除了验证/兼容性问题之外,它还会使您难以编写选择器,因为$('#nl[]')中的方括号表示其他内容。在这种情况下你可以使用反斜杠转义它们,尽管有些地方jQuery的正则表达式选择器解析会破坏这样的东西。

另外,页面上不能有两个具有相同id的元素。 id的作用是识别页面上的单个元素,并使用简单的字母数字*名称来编写脚本和样式表;它不是表单字段的name属性的替代或替代,表单字段是要发送到服务器的控件名称。

(*:加.-_:虽然您通常不想使用:.也会让编写选择器变得烦人。)

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

答案 1 :(得分:0)

var fields = $(":input").serializeArray();    
$.post("test.php",fields);

请参阅serializeArray( )input选择器上的文档。