2016-09-16 105 views
0

我指的是選項maximumInputLength:此設置爲如如果我輸入長度爲8的字詞,「5」將顯示一條消息「請刪除3個字符」。儘管如此,可以輸入任意數量的字符。Select2 4.x:如何實際限制搜索輸入?

雖然這可能在某些情況下是期望的,它不同於如何<input type="text" maxlength="5">作品,因爲這將防止多於5個字符的任何輸入。

所以爲了在我的UI中有一個一致的行爲我的問題是:如何實際限制的輸入?


我試過到目前爲止:在function MaximumInputLength生成消息,所以我試圖重寫功能解釋here,但沒有成功。我得到幾個錯誤,如「選項是不確定的」,「裝修是不確定的」,...雖然我仍然認爲我會以某種方式覆蓋某些事物的過程中選擇2 4.x到這樣做是有點我不清楚,所以任何幫助表示讚賞


編輯:velimir-tchatchevskyanswer向我指出這種解決方法:

$('select').select2().on('select2:open', function() { 
    $('.select2-search__field').attr('maxlength', 5); 
}); 

類哈克(如果在未來版本的CSS類的變化是什麼?),所以我ð喜歡不同的解決方案,但這樣做的工作

回答

1

那麼你可以使用簡單的jQuery以限制在這個例子中我也禁用輸入鍵釋放輸入達到最大長度時:

$("input").keydown(function(e){ 
    if($("#input").val().length > 2){ 
      $("#input").val($("#input").val().substr(0, 3)); 
      $("#input").prop('disabled', true); 
    } 
}); 
+0

'禁用=「真正的」'是不是我要什麼比較,加上輸入字段不可用,直到打開下拉列表,但這幫助我構建了一種解決方法,請參閱更新後的問題。謝謝! PS:應該是'attr()',而不是'prop()' – crusy