https://github.com/danielfarrell/bootstrap-combobox
我正在使用此代码库来允许在我的MVC应用程序中自动完成。它在Chrome中运行良好,但在IE中,用户输入单个字符或数字后,有时会坐下来,然后擦除输入框并返回任何内容。我发现它似乎只在返回的数据集很大时才这样做,似乎IE无法处理它。
我想我可以通过强迫用户输入至少2位数字/字符来解决这个问题,但是我找不到脚本中的位置来进行更改(我还是JS的新手)。
我正在考虑做这样的事情,但不知道该把它放在哪里:
var el = $('.combobox').combobox();
el.on('change', function(e){
var value = $("#seed").val();
var len = value.length;
console.log("value is " + value + ' ' + " length is: " + len);
if(len < 2) {
e.preventDefault();
}
})
答案 0 :(得分:0)
也许您应该使用模型绑定尝试它,它将为您提供服务器/客户端验证。 我正在描述如何使用.NET示例解决它:
[StringLength(60, MinimumLength = 2)]
public string Title {get;set;}
参考: https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/complex-data-model
答案 1 :(得分:0)
我能够解决我的特殊情况。我在IE中使用时无法找到错误,但我注意到当选择列表特别长时,组合框将停止工作。我提出的修复方法是为脚本添加最小长度功能,以便用户在搜索脚本触发之前必须在输入中输入至少2个数字。
在bootstrap-combobox脚本中我改变了这个:
, lookup: function (event) {
this.query = this.$element.val();
return this.process(this.source);
}
到此:
, lookup: function (event) {
this.query = this.$element.val();
if (this.query.length > 1) {
return this.process(this.source);
}
}