获取jquery中具有相同名称属性的所有文本框的值

时间:2012-12-17 15:08:08

标签: javascript jquery

我需要使用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();

但是没有成功。

5 个答案:

答案 0 :(得分:20)

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

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

http://jsfiddle.net/UugWW/

答案 1 :(得分:2)

这个应该有效:

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

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

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

答案 2 :(得分:2)

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

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

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

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

var inputs = $inputs.get();

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

var values = inputs.map(function takeValue(input) {
    return input.value;
});

答案 3 :(得分:1)

使用这样的选择器:

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

答案 4 :(得分: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);