Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过javascript提交HTML表单并防止默认设置_Javascript_Html_Forms_Dom_Events - Fatal编程技术网

通过javascript提交HTML表单并防止默认设置

通过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

我使用的是一个用javascript构建的虚拟键盘,用于在嵌入式系统上运行的用户界面

虚拟键盘的源代码可在此处找到:

我只更改了源代码中的一个部分。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
  }
});

我在阅读了MDN文档后找到了它

这是
HTMLFormElement.submit()
文档:

这份文件很好地解释了我为什么会有这个问题

总之,我需要使用
requestSubmit()
函数而不是
submit()
函数,因为
submit()
函数不会触发
submit
事件


HTMLFormElement.requestSubmit()
文档:

尝试删除此行
this.properties.value+=“\n”@firatozcevahir我已经试过了,但没关系。谢谢你