如何从JQUERY中的输入中获取数组?

时间:2011-04-19 15:18:31

标签: jquery arrays select textinput

我有一组输入来获取玩家信息:

<select name="playerSport" class="playerSport">...</select>
<input type="text" name="playerPosition" class="playerPosition" />
<input type="text" name="playerNumber" class="playerNumber" />
<button id="submit">Submit</submit>

每个字段可以有n个。我正在使用这种形式的AJAX,所以我想将每个字段拉成一个数组。为每项运动,位置和数量准备一个阵列。

我已经查看了这些页面中的示例: jquery.val()jquery.map()

我试过了:

var sport = $('input[name="playerSport"').val() || [];
var sportList = sport.join(",");

var sport = $('.playerSport').val() || [];
var sportList = sport.join(",");

$('input[name="playerSport"').map().get().join(",");

$('.playerSport').map().get().join(",");

这些返回空白结果。赔率是我错过了一些相当明显的东西。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

var a = $.map($(".playerSport,.playerPosition,.playerNumber"), function(el) {
 return $(el).val();
});
// now 'a' is an array containing the values.

答案 1 :(得分:1)

另一种选择是将函数传递给.val()

var values = [];
$(":input").val(function(index, value){
    values.push(value);
});

如果您想要选择所有:input<select/><input type="text"/>元素,也可以使用<textarea/>

Code example on jsfiddle

答案 2 :(得分:0)

.val() will return an array表示具有多个值的元素(如多个<select>),但它不会返回所选节点集中每个元素的值数组。 / p>

您需要在回调函数中构建一个数组,可能使用$.map