我参考选项maximumInputLength
:将此设置为例如如果我输入长度为8的术语,“5”会显示“请删除3个字符”的消息。但是,可以输入任意数量的字符。
虽然在某些情况下可能需要这样做,但它与<input type="text" maxlength="5">
的工作方式不同,因为这会阻止任何超过5个字符的输入。
因此,为了在我的UI中保持一致的行为,我的问题是:如何实际限制输入?
到目前为止我尝试过的内容:消息是在function MaximumInputLength
中生成的,因此我尝试按照here解释覆盖该功能,但没有成功。我得到了一些错误,例如“选项未定义”,“装饰未定义”,......虽然我仍然认为我必须以某种方式覆盖某些事情,但在select2 4.x中这样做的过程对我来说有点不清楚,所以任何帮助表示赞赏
编辑:velimir-tchatchevsky的answer向我指出了这种解决方法:
$('select').select2().on('select2:open', function() {
$('.select2-search__field').attr('maxlength', 5);
});
有点hacky(如果css类在将来的版本中发生变化怎么办?),所以我更喜欢不同的解决方案,但是这样做了
答案 0 :(得分:1)
你可以使用简单的jQuery来限制示例中键释放的输入我还会在达到最大长度时禁用输入:
$("input").keydown(function(e){
if($("#input").val().length > 2){
$("#input").val($("#input").val().substr(0, 3));
$("#input").prop('disabled', true);
}
});