fix(editor): 语言下拉展开时 Enter 不误触发插入
<select> 展开时 Enter 用于确认选项,不应提交整个弹框。 HTMLSelectElement.open 浏览器存在但 TS lib.dom 未声明,用交叉类型断言。
This commit is contained in:
parent
9b4c0ea36e
commit
0b4346ecd4
@ -582,6 +582,9 @@ export function openRunnableModal(editor: Editor): void {
|
|||||||
// Enter 在表单元素内提交(浏览器原生 number input 的 Enter 不会触发 click)。
|
// Enter 在表单元素内提交(浏览器原生 number input 的 Enter 不会触发 click)。
|
||||||
// 注意:网络 checkbox 的 tagName 也是 'input',Enter 会触发提交而非切换
|
// 注意:网络 checkbox 的 tagName 也是 'input',Enter 会触发提交而非切换
|
||||||
// (checkbox 原生用 Space 切换),符合模态框 Enter=确认的惯例。
|
// (checkbox 原生用 Space 切换),符合模态框 Enter=确认的惯例。
|
||||||
|
// 例外:语言 <select> 下拉展开时 Enter 用于确认选项,不应触发插入。
|
||||||
|
// (HTMLSelectElement.open 在浏览器存在,但 TS lib.dom 未声明,需断言。)
|
||||||
|
if ((langSelect as HTMLSelectElement & { open: boolean }).open) return;
|
||||||
const tag = (document.activeElement?.tagName ?? '').toLowerCase();
|
const tag = (document.activeElement?.tagName ?? '').toLowerCase();
|
||||||
if (tag === 'input' || tag === 'select') {
|
if (tag === 'input' || tag === 'select') {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user