JQuery移动多选(对话框列表)选项限制

时间:2013-11-07 03:23:29

标签: jquery jquery-mobile

我正在尝试限制多选对话框(JQuery Mobile)上的可选选项数量,但实际上无法接缝以使其按预期工作。

我做了一个JSFiddle:

http://jsfiddle.net/xdJJg/5/

正如您所看到的,即使限制为4,也可以选择5。此外,如果您单击另一个选项之前的选项,它将同时删除这两个选项。

已经尝试了几种不同的方法来做到这一点,无法解决问题。

    <select id="test1" data-rel="popup" data-position-to="window" data-native-menu="false" data-mini="true" multiple="multiple">
        <option>Sportbooks</option>
        <option value="1">Test1</option>
        <option value="2">Test2</option>
        <option value="3">Test3</option>
        <option value="4">Test4</option>
        <option value="5">Test5</option>
        <option value="6">Test6</option>
        <option value="7">Test7</option>
        <option value="8">Test8</option>
        <option value="9">Test9</option>
        <option value="10">Test10</option>
        <option value="11">Test11</option>
        <option value="12">Test12</option>
        <option value="13">Test13</option>
        <option value="14">Test13</option>
        <option value="15">Test13</option>
        <option value="16">Test13</option>
        <option value="17">Test13</option>
        <option value="18">Test13</option>
        <option value="19">Test13</option>
        <option value="20">Test13</option>
    </select>

    $(document).ready(function () {
        $("#test1").change(function () {
            $(this).find("option:selected")
            if ($(this).find("option:selected").length > 4) {
                $(this).find("option").removeAttr("selected");
                $(this).val(arr);
            } else {
                arr = new Array();
                $(this).find("option:selected").each(function (index, item) {
                    arr.push($(item).val());
                });
            }
        });
    });

希望有人可以帮助我们,谢谢。

1 个答案:

答案 0 :(得分:0)

这个限制是因为你在一个以索引0开头的数组上使用.length。所以为了限制为4,你想使用&gt; = 4,这将修复那个部分。我正在考虑修复另一个问题,即当你在选中项目上方选择一个项目时,它会删除多个项目。