[英]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 );
參考:
您可以嘗試以下方法:
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.