2016-02-02 120 views
1

我有以下代碼:如何在select2中closeOnSelect爲false時設置maximumSelectionLength?

$("#select2").select2({ closeOnSelect: false, 
         maximumSelectionLength: 5, 
         ... // I have AJAX implemented here 
         }); 

當我有closeOnSelectfalse並有maximumSelectionLength集,我能夠選擇多於5個項目沒有任何問題。當我選擇了超過5個項目並且嘗試添加另一個項目時,從下拉列表中單擊,我會收到消息「您只能選擇5個項目」。

是否有任何變通辦法有這兩個屬性的協同工作發生衝突?

我目前使用選擇二4.0.1。


更新:

我把pratikwebdev的提醒,並添加以下代碼:

$("#select2").select2({ closeOnSelect: false, 
         maximumSelectionLength: 5, 
         ... // I have AJAX implemented here 
}).on("change", function(e) { 
    if(e.target.length == 5) { 
     $("#select2").select2({closeOnSelect: true, 
           maximumSelectionLength: 5, 
     }); 
    } 
}); 

這實際上將關閉下拉一旦我選擇5個項目和maximumSelectionLength屬性將好好工作。但是現在closeOnSelect是真的,所以每次我選擇一些東西時,下拉菜單都會關閉。

有沒有一種方法來切換closeOnSelect

+0

嘗試是否可以在用戶在下拉菜單中選擇任何值時觸發「更改」事件。 – pratikpawar

+0

@pratikwebdev我試圖觸發一個更改事件時,選擇的值,但我不知道如何去關閉下拉菜單當長度命中5.任何想法? –

+0

檢查解決方案,如果它適合你。 – pratikpawar

回答

3

這應該很好地工作。

$("#select2").change(function(){ 
     var ele = $(this); 
     if(ele.val().length==5) 
     { 
     ele.select2('close'); 
     } 
    }); 
+0

我只是給這個一杆,它似乎有一個類似的錯誤是我更新的代碼:1)每次我選擇一個項目,下拉列表關閉,並且2)下拉列表中的列表現在縮短爲我選擇的前5個,其餘選項消失。 –

+0

哦,我沒有看到您的更新代碼。讓我試試看。 –

+0

是的,它做到了。非常感謝! –

相關問題