12

我需要使用 jquery 获取具有相同名称属性的所有文本框的值。

<input type="text" id="text1" name="text[]">
<input type="text" id="text2" name="text[]">
<input type="text" id="text3" name="text[]">

如何获取文本框text[]的所有值并使用 jquery 进行比较。

我尝试使用

 var values = $("input[name='text[]']")
 .map(function(){return $(this).val();}).get();

但我没有成功。

4

5 回答 5

21

您可以使用map方法并将值存储到数组中。

$(function(){
   var values = $('input[name="text[]"]').map(function(){
       return this.value
   }).get()
})

http://jsfiddle.net/UugWW/

于 2012-12-17T15:10:20.847 回答
2

这个应该工作:

$('input[name="text[]"]');

您可以循环它以获取所有值。

$('input[name="text[]"]').each(function() {
    alert($(this).val());
});
于 2012-12-17T15:09:58.863 回答
2

让我们将需求分解为更小的问题。

首先,您要选择所有这些输入。

var $inputs = $("input[name='text[]']")

它返回一个 jQuery 对象,包含所有名为text[]. 您也可能不需要在名称中使用方括号。

var inputs = $inputs.get();

将匹配的元素提取到一个普通的 Array 中,以便我们现在可以访问 Array 的原型方法,例如Array.prototype.map

var values = inputs.map(function takeValue(input) {
    return input.value;
});
于 2012-12-17T15:14:34.740 回答
1

使用这样的选择器:

$('input[type="text"][name="text[]"')
于 2012-12-17T15:10:35.860 回答
0
var textboxcount = document.getElementsByName("text").length;
var textvalue="";
for (var i = 0; i < textboxcount ; i++) {
 textvalue= textvalue + document.getElementsByName("text").item(i).value; 
}
alert(textvalue);
于 2015-05-28T12:49:51.043 回答