【发布时间】:2021-01-30 00:02:08
【问题描述】:
我正在使用一个用 javascript 构建的虚拟键盘,用于在嵌入式系统上运行的用户界面。
虚拟键盘的源代码可以在这里找到:https://codepen.io/dcode-software/pen/KYYKxP
我只更改了源代码中的一个部分。 Keyboard.js 文件第 141-151 行:
case "enter":
keyElement.classList.add("keyboard__key--wide");
keyElement.innerHTML = createIconHTML("Enter");
keyElement.addEventListener("click", () => {
this.properties.value += "\n";
this._triggerEvent("oninput");
/**
* The part that i modified
*/
document.querySelector("form").submit();
});
break;
基本上,我在这里要做的是在虚拟键盘上按下“enter”键时在当前页面上提交表单。 (效果很好)
但我也想阻止这个提交事件的默认值。 (e.preventDefault()) 那么我该如何实现呢?感谢您的帮助。
编辑:我已经在提交函数中添加了e.preventDefault()。这是我处理登录表单提交的代码:
//Login
const loginForm = document.querySelector("#login-form");
loginForm.addEventListener("submit", async (e) => {
e.preventDefault();
const errorContainer = document.querySelector("#login-form-message");
errorContainer.innerHTML = "";
try {
//Submitting form
} catch (error) {
//Handle error
}
});
【问题讨论】:
-
尝试删除此行
this.properties.value += "\n"; -
@firatozcevahir 我已经尝试过了,但这没关系。谢谢你
标签: javascript html forms dom events