是否可以禁用选择2(v 4.0.3)的键输入。我找到了一个可以用“openOnEnter:false”选项完成的地方,但它对我不起作用。
很不幸的是,不行。至少在版本4.0.3时。 它是硬编码的:
this.on('keypress', function (evt) {
var key = evt.which;
if (self.isOpen()) {
// skipped
} else {
if (key === KEYS.ENTER || key === KEYS.SPACE ||
(key === KEYS.DOWN && evt.altKey)) {
self.open();
evt.preventDefault();
}
}
});
在Enter键按下打开下拉列表的行为是硬编码的(如@Shrike所说)并且没有可用于禁用它的选项(openOnEnter
在v3中使用,但在v4中被删除)。
我找到了以下(脏)解决方案,适用于Select2 v4和单选,:
$(document).on('keydown', '.select2-selection', function (evt) {
if (evt.which === 13) {
$("#mySelect").select2('close');
}
});
我抓住keydown
事件并调用select2 close
方法立即关闭下拉列表。
在Chrome,Mozilla,Safari中测试过。