禁用思源内部的 enter confirm 特性

This commit is contained in:
frostime 2024-05-01 17:45:05 +08:00
parent 9f54e7046c
commit 03ab34f552

View file

@ -3,7 +3,7 @@
* @Author : frostime * @Author : frostime
* @Date : 2023-12-17 18:28:19 * @Date : 2023-12-17 18:28:19
* @FilePath : /src/libs/setting-utils.ts * @FilePath : /src/libs/setting-utils.ts
* @LastEditTime : 2024-04-30 22:15:25 * @LastEditTime : 2024-05-01 17:44:16
* @Description : * @Description :
*/ */
@ -285,6 +285,13 @@ export class SettingUtils {
createDefaultElement(item: ISettingUtilsItem) { createDefaultElement(item: ISettingUtilsItem) {
let itemElement: HTMLElement; let itemElement: HTMLElement;
//阻止思源内置的回车键确认
const preventEnterConfirm = (e) => {
if (e.key === 'Enter') {
e.preventDefault();
e.stopImmediatePropagation();
}
}
switch (item.type) { switch (item.type) {
case 'checkbox': case 'checkbox':
let element: HTMLInputElement = document.createElement('input'); let element: HTMLInputElement = document.createElement('input');
@ -330,7 +337,7 @@ export class SettingUtils {
textInputElement.value = item.value; textInputElement.value = item.value;
textInputElement.onchange = item.action?.callback ?? (() => { }); textInputElement.onchange = item.action?.callback ?? (() => { });
itemElement = textInputElement; itemElement = textInputElement;
textInputElement.addEventListener('keydown', preventEnterConfirm);
break; break;
case 'textarea': case 'textarea':
let textareaElement: HTMLTextAreaElement = document.createElement('textarea'); let textareaElement: HTMLTextAreaElement = document.createElement('textarea');
@ -345,6 +352,7 @@ export class SettingUtils {
numberElement.className = 'b3-text-field fn__flex-center fn__size200'; numberElement.className = 'b3-text-field fn__flex-center fn__size200';
numberElement.value = item.value; numberElement.value = item.value;
itemElement = numberElement; itemElement = numberElement;
numberElement.addEventListener('keydown', preventEnterConfirm);
break; break;
case 'button': case 'button':
let buttonElement: HTMLButtonElement = document.createElement('button'); let buttonElement: HTMLButtonElement = document.createElement('button');