通过javascript提交HTML表单并防止默认设置
我使用的是一个用javascript构建的虚拟键盘,用于在嵌入式系统上运行的用户界面 虚拟键盘的源代码可在此处找到: 我只更改了源代码中的一个部分。Keyboard.js文件第141-151行:通过javascript提交HTML表单并防止默认设置,javascript,html,forms,dom,events,Javascript,Html,Forms,Dom,Events,我使用的是一个用javascript构建的虚拟键盘,用于在嵌入式系统上运行的用户界面 虚拟键盘的源代码可在此处找到: 我只更改了源代码中的一个部分。Keyboard.js文件第141-151行: case "enter": keyElement.classList.add("keyboard__key--wide"); keyElement.innerHTML = createIconHTML("Enter
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
}
});
我在阅读了MDN文档后找到了它 这是
HTMLFormElement.submit()
文档:
这份文件很好地解释了我为什么会有这个问题
总之,我需要使用requestSubmit()
函数而不是submit()
函数,因为submit()
函数不会触发submit
事件
HTMLFormElement.requestSubmit()
文档:尝试删除此行this.properties.value+=“\n”代码>@firatozcevahir我已经试过了,但没关系。谢谢你