【问题标题】:jQuery MultiSelect .val() inconsistent with "getChecked"jQuery MultiSelect .val() 与“getChecked”不一致
【发布时间】:2013-03-31 23:12:16
【问题描述】:

我正在使用 Eric Hynds 的 MultiSelect 控件: http://www.erichynds.com/blog/jquery-ui-multiselect-widget

控件似乎工作正常,除了当我尝试获取值时,.val() 方法不会给我所有选中的项目 - 它只会给我选定列表中的一个项目。

要获得我需要的所有项目,我需要使用更长的形式: var values = $("#retailersSelect").multiselect("getChecked").map(function () {return this.value;}).get();

知道为什么 .val() 不会给我一个结果数组吗?

完整的 HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <title>Test Page</title>
    <link href="/css/redmond/jquery-ui-1.10.2.custom.css" rel="stylesheet" type="text/css" />
    <link href="/css/jquery.multiselect.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="/js/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="/js/jquery-ui-1.10.2.custom.js"></script>
    <script type="text/javascript" src="/js/jquery.multiselect.js"></script>
</head>
<body>
    <form action="test.htm" method="post">
        <div id="main">

            <select id="retailersSelect">
                <option value=""></option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
            </select>

            <br />
            <input type="button" id="ExecuteReportButton" value="Butt" />

            <script type="text/javascript">
                $(function () {

                    //set up the multi selects
                    $("#retailersSelect").multiselect({
                        selectedList: 3, // 0-based index
                        header: false,
                        noneSelectedText: "Select a retailer"
                    });

                    $("#ExecuteReportButton").click(function () {
                        var values = $("#retailersSelect").multiselect("getChecked").map(function () {
                            return this.value;
                        }).get();
                        alert(values); //GIVES ME THE FULL ARRAY - NICE!

                        var values2 = $("#retailersSelect").val();
                        alert(values2); //ONLY GIVES ME A SINGLE ITEM - :(

                        return false;
                    });
                })
            </script>
        </div>
    </form>
</body>
</html>

【问题讨论】:

    标签: javascript jquery multi-select


    【解决方案1】:

    您在标记中忘记了一些非常重要的内容。您没有将 select 设置为实际接受多个值。

    <select multiple id="retailersSelect">
    

    【讨论】:

    • 哦,伙计..我花了多少时间试图追踪这个。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2010-11-06
    • 2015-08-04
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    相关资源
    最近更新 更多