簡體   English   中英

如何檢索所有jQuery多選值

[英]How to retrieve all jQuery multi-select values

我試圖從我的JavaScript代碼訪問jQuery多選對象,並使自己非常困惑。 這個簡單的示例可以很好地工作,並以逗號分隔的已檢查項目列表進行警告:

http://jsfiddle.net/smontanaro/d0Laxh6j/

這些值是用此位產生的:

$('[name=offset]').val()

但我不了解它在幕后所帶來的魔力。 因此,我很難將其概括為一個更有用的示例。

考慮稍微不同的環境。 我有一個具有以下結構的回調函數:

function respond(button) {
    var form = button.form;
    ...
}

從HTML調用,如下所示:

<input type="button" value="Submit" onclick="respond(this); return false;">

如果我使用這樣的東西:

var group = form.elements["offset"].value;

我得到的只是第一個檢查的值。 所以,我有我的按鈕及其形式。 據我了解,它們都不是jQuery特定的對象,而只是普通的舊JavaScript對象。 我如何從它們中獲取復選框值的逗號分隔字符串(或者更好的是字符串列表),例如簡單的jsfiddle示例產生?

您可能打算寫: DEMO

 <input type="button" value="Check Selections"
       onclick="alert($(':input[name=offset] :selected').map(function() { return this.value; }).get() ); return false;">

但是我強烈建議不要使用內聯JS。 因此,您需要使用:

<input type="submit" value="Check Selections">

和:

var values = $('select[name=offset] :selected').map(function() { 
    return this.value; 
}).get(); //array --> add .join(',') to get list
alert( values );

DEMO

參考:

-.map()| jQuery API文檔

您可以嘗試以下方法:

HTML

<select name="offset" class="multi" multiple="multiple">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option class="all" value="all">All</option>
    <option class="all" value="actual">Actual</option>
</select>
<input type="button" value="Check Selections" onclick="alert($('input[name=offset]:checked').val()); return false;">

JS

$('.multi').multiselect();
$(".multi").on("change", function () {
    var val = $(this).map(function () {
        return $(this).val();
    }).get();
    console.log(val);
});

小提琴

上面的示例可以進行更改。 為了使您的案例能夠在按鈕單擊上獲得選擇值,您可以嘗試以下操作:

$('.multi').multiselect();
window.getValues =  function() {
    var val = $(".multi").map(function () {
        return $(this).val();
    }).get();
    return val;
}

小提琴獲得點擊價值

dhtml部分有問題,您可能需要更改html部分,如下所示

jsfiddle鏈接

`http://jsfiddle.net/d0Laxh6j/6/`

<input type="button" value="Check Selections" onclick="alert($('[name=offset]').val());">

暫無
暫無

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

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