Select2 4.x:如何实际限制搜索输入?

时间:2016-09-16 07:56:06

标签: jquery select2 jquery-select2-4

我参考选项maximumInputLength:将此设置为例如如果我输入长度为8的术语,“5”会显示“请删除3个字符”的消息。但是,可以输入任意数量的字符。

虽然在某些情况下可能需要这样做,但它与<input type="text" maxlength="5">的工作方式不同,因为这会阻止任何超过5个字符的输入。

因此,为了在我的UI中保持一致的行为,我的问题是:如何实际限制输入?

到目前为止我尝试过的内容:消息是在function MaximumInputLength中生成的,因此我尝试按照here解释覆盖该功能,但没有成功。我得到了一些错误,例如“选项未定义”,“装饰未定义”,......虽然我仍然认为我必须以某种方式覆盖某些事情,但在select2 4.x中这样做的过程对我来说有点不清楚,所以任何帮助表示赞赏

编辑:velimir-tchatchevskyanswer向我指出了这种解决方法:

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

有点hacky(如果css类在将来的版本中发生变化怎么办?),所以我更喜欢不同的解决方案,但是这样做了

1 个答案:

答案 0 :(得分:1)

你可以使用简单的jQuery来限制示例中键释放的输入我还会在达到最大长度时禁用输入:

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