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 に答える