1

私は自分の Web サイトで select2 を使用しており、10 個のオプションがあるとしましょう。だから私はこのjsを持っています:

$("#myselect").select2({ 
    maximumSelectionLength: 3
});

オプション 1 が選択されている場合、Select2 の他のすべてのオプションを無効にします。どういうわけか maximumSelectionLength をスキップして、突然 1 つだけを選択できるようにします。ただし、これはオプション 1 を選択した場合にのみ発生するはずです。

たとえば、オプション 2 を選択した場合、オプション 1 を無効にするだけです。

したがって、一般に、オプション 1 は、他の何かが選択されている場合は最大 3 つの選択から除外する必要があり、最初に選択された場合に備えて他のすべてのオプションを無効にする必要があります。説明で明確に説明していただければ幸いです。

このようなことは可能ですか?

やってみた >

if($("#myselect").val() == 1){
    $("#myselect").find("option").each(function(){
        if($(this).val() != 1){
            $(this).attr("disabled", "disabled");
        }
    });
}

これにより、オプション1が選択されたときにすべてのオプションにdisabled属性が実際に追加されますが、生成されたselect2 htmlコードではなく、最初のhtmlでのみ追加されるため、実際には機能しません。

前もって感謝します

4

1 に答える 1

1

@ karan3112の推薦の後、私はこれを追加しました

   $("#myselect").select2({maximumSelectionLength:3}).trigger('selection:update'); 

無効な属性を追加した後、問題なく動作します。

于 2016-02-09T13:26:48.020 に答える