是否可以禁用选择2(v 4.0.3)的键输入。我发现可以使用选项“openOnEnter:false”来完成,但它对我不起作用。
答案 0 :(得分:0)
不幸的是,没有。至少在版本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();
}
}
});
答案 1 :(得分:0)
在Enter键上打开下拉菜单的行为是硬编码的(如@Shrike所说),没有选项可以禁用它(openOnEnter
在v3中已使用,但在v4中已删除)。
对于 Select2 v4 和单选,我发现了以下( dirty )解决方案:
$(document).on('keydown', '.select2-selection', function (evt) {
if (evt.which === 13) {
$("#mySelect").select2('close');
}
});
我捕获了keypress
事件,并调用了select2 close
方法以立即关闭下拉菜单。
在Chrome,Mozzila,Safari中进行了测试。
答案 2 :(得分:0)
对于使用select2.full.min.js的任何人,您都可以搜索“ a.open”并将该部分代码替换为以下代码:
Uncaught TypeError: Illegal invocation
at get-csv.js
at commitHookEffectList (react-dom.development.js:17283)
at commitPassiveHookEffects (react-dom.development.js:17307)
at HTMLUnknownElement.callCallback (react-dom.development.js:149)
at Object.invokeGuardedCallbackDev (react-dom.development.js:199)
at invokeGuardedCallback (react-dom.development.js:256)
at commitPassiveEffects (react-dom.development.js:18774)
at wrapped (scheduler-tracing.development.js:207)
at flushPassiveEffects (react-dom.development.js:18822)
at dispatchAction (react-dom.development.js:13530)
这将检查select2元素是否被禁用,并阻止进一步的操作。