如何使用javascript / jquery获取文本框数组值

时间:2010-08-19 09:50:49

标签: javascript jquery arrays

我有一系列文字输入,如下所示:

<input type="textbox" name="mobileno[]"><br>
<input type="textbox" name="mobileno[]"><br>
<input type="textbox" name="mobileno[]"><br>

它们是在运行时使用“添加更多”按钮生成的。

有没有办法可以使用jQuery获取文本输入值并在ajax请求中传递它?

我创建了一个ajax请求,但是我无法在name = value模式中获取文本输入数组的值。

4 个答案:

答案 0 :(得分:6)

你可以这样做:

$('input[name="mobileno[]"]').each(function(){
  alert($(this).val());
});

^=找到名称 mobileno文字开头的元素,稍后each用于遍历所有元素获得他们的价值。

更多信息:

答案 1 :(得分:2)

试试这个:

var text= new Array();
$("input[name='mobileno[]']").each(function(){
    text.push($(this).val());
});  

如果您警告变量文本,您将获得逗号分隔输出。

答案 2 :(得分:1)

首先:这不是“文本框数组[es]”。 HTML中没有数组这样的东西。它只是多个文本框,所有文本框都碰巧具有相同的名称,并且该名称恰好在名称中包含方括号。名称中的方括号在HTML中没有特殊含义。 (PHP需要它们,但这是另一回事。)

第二:type="textbox"错了。它只是type="text"。您很幸运,因为"text"是浏览器在找到无效值(例如textbox时)时返回的默认值。

如果您需要在标准name = value模式中获取表单的值(以&分隔),jQuery为表单提供serialize方法:

alert($("#your-form-id").serialize());

http://api.jquery.com/serialize/

答案 3 :(得分:1)

var data = $('input[name="mobileno[]"]').map(function(){
  return this.name + '=' + this.value;
}).get().join('&');
alert(data);

这将为您提供类似mobileno[]=value&mobileno[]=value&mobileno[]=value的内容。 然后,您可以在ajax请求中传递它。