我有一组输入来获取玩家信息:
<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(",");
这些返回空白结果。赔率是我错过了一些相当明显的东西。有什么想法吗?
答案 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/>
。
答案 2 :(得分:0)
.val()
will return an array表示具有多个值的元素(如多个<select>
),但它不会返回所选节点集中每个元素的值数组。 / p>
您需要在回调函数中构建一个数组,可能使用$.map
。