如何检索所有jQuery多选值

时间:2014-10-22 19:31:00

标签: javascript jquery

我正在尝试从我的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示例产生?

3 个答案:

答案 0 :(得分:1)

您可能打算写: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 Documentation

答案 1 :(得分:0)

你可以试试这个:

<强> 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);
});

fiddle

以上示例将适用于变更。为了让您的情况在点击按钮上获得选择值,您可以尝试:

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

fiddle get values on click

答案 2 :(得分:0)

dhtml部分存在一些问题,您可能需要更改您的html部分,如下所示

jsfiddle链接

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

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