我有一系列文字输入,如下所示:
<input type="textbox" name="mobileno[]"><br>
<input type="textbox" name="mobileno[]"><br>
<input type="textbox" name="mobileno[]"><br>
它们是在运行时使用“添加更多”按钮生成的。
有没有办法可以使用jQuery获取文本输入值并在ajax请求中传递它?
我创建了一个ajax请求,但是我无法在name = value模式中获取文本输入数组的值。
答案 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());
答案 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请求中传递它。