0

我正在尝试限制多选对话框(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());
                });
            }
        });
    });

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

4

1 回答 1

0

限制是由于您在索引为 0 的数组上使用 .length 的事实。因此,为了限制为 4,您希望使用 >= 4,这将修复该部分。我正在研究解决另一个问题,即当您选择选中项目上方的项目时它如何删除多个。

于 2013-11-07T03:59:08.783 回答