Javascript 我真的不知道';我不知道问题出在哪里,表单重置不会';行不通

Javascript 我真的不知道';我不知道问题出在哪里,表单重置不会';行不通,javascript,forms,input-field,Javascript,Forms,Input Field,每当我尝试按下一个键(在本例中为m键)时,表单重置不起作用,一个m键或任何键始终保留在inputfield中,请帮助 const form = document.getElementById("form"); const input = form.querySelector("input"); form.addEventListener("submit", e => { e.preventDefault(); }); in

每当我尝试按下一个键(在本例中为m键)时,表单重置不起作用,一个m键或任何键始终保留在inputfield中,请帮助

const form = document.getElementById("form");
const input = form.querySelector("input");
form.addEventListener("submit", e => {
    e.preventDefault();
});
input.addEventListener("keydown", e => {
    if(e.key === "m"){
        console.log(`triggered`);
        input.value = ""; // or form.reset()
        console.log("form reseted")
    }
})
发件人:

keydown和keyup事件提供一个代码,指示按下了哪个键,而keypress指示输入了哪个字符。例如,通过keydown和keypup将小写字母“a”报告为65,但通过keypress将其报告为97。所有事件都将大写字母“A”报告为65

您正在使用keydown事件尝试匹配字符,而您应该匹配keycode

“我的一个应用程序”中使用的工作代码示例(用于检测按enter键并清除聊天记录的输入字段):


正如您所注意到的,我正在使用“keyup”事件,将event.KeyCode返回的值与我要检测的键的代码(在本例中为13,“enter”的KeyCode)进行比较。

我认为使用函数getElementById()比使用querySelector()更好。 它将很好地工作

 var input = document.getElementById("user-input");
    input.addEventListener("keyup", function(event) {
    if(event.key == "m") {
       event.preventDefault();
       console.log("form reseted");
       input.value=""; 
      }
    });

你收到日志消息了吗?请发一条。您可以使用使其可执行。
 var input = document.getElementById("user-input");
    input.addEventListener("keyup", function(event) {
    if(event.key == "m") {
       event.preventDefault();
       console.log("form reseted");
       input.value=""; 
      }
    });