簡體   English   中英

用jquery .val()返回一個數組

[英]Return an array with jquery .val()

我有一組復選框,只想將選中的復選框連接到查詢字符串中,但是由於某種原因,val()僅返回第一個復選框。 jQuery API文檔提到selects可以從.val()函數返回一個數組,我是否也可以使用原型或jquery插件獲得相同的輸入行為?

這是我的代碼:

$('.boxes input:checked');
// [ <input type="checkbox" value="val1">, <input type="checkbox" value="val2">, <input type="checkbox" value="val3"> ]
$('.boxes input:checked').val();
// "val1"

理想情況下,第二個控制台輸出為:

$('.boxes input:checked').val();
// [ "val1", "val2", "val3" ]

val返回具有multiple屬性的select元素的選定值的數組,對於其他元素,它返回集合中第一個元素的值。 您可以使用map方法:

var values = $('.boxes input:checked').map(function() {
   return this.value;
}).get();

您還可以定義一個方法:

$.fn.vals = function() {
    var first = this.get(0);
    if ( this.length === 0 ) return [];

    if ( first.tagName === 'SELECT' && first.multiple ) {
        return this.val();
    }

    return this.map(function() { return this.value; }).get();
}
// ...
var values = $('.boxes input:checked').vals();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM