Javascript输入键按下的事件替代移动网站

Javascript enter key pressed event alternative for mobile site

本文关键字:移动 移动网 网站 事件 输入 Javascript      更新时间:2023-09-26

我有一个快速反馈小部件在我的网站,只有一个文本框。当用户按下回车键时,使用ajax自动发送反馈。但这并不适用于android、j2me等移动设备。有没有其他方法可以同时适用于桌面和移动设备?添加提交按钮对我来说是不可接受的。

我刚刚在android上检查过,当你输入一些东西并按下"Go"(输入alternative?)它会触发一个事件,键代码实际上是13,因此与桌面键盘上的enter相同。

编辑:

我建议调试代码并检查提交是否实际触发,但也许关键代码并不总是13?只是猜测. .

Edit2:

在您的移动设备上测试此代码。当我按下"Go"时,输入值变为"sent!",这证明它有效。

为什么不将onblur与回车键结合使用?如果你能按回车键,它就会正常工作。如果不能,它们就会留下输入,然后onblur就会做功。

我把它包装在一个形式添加onsubmit然后preventDefault。(实际上是Vue中的@submit.prevent)

实际上不需要输入按钮,只需要表单和输入。

    form.field.m-sm.px-md(@submit.prevent="onSearch")
      .control.has-icons-right
        input.input.is-rounded(type="search" placeholder="Search" v-model="q")
        span.icon.is-right
          fa(icon="search")

我得到了一个确切的答案…您需要识别哪个是按下按钮的关键代码。通常是13。要在移动设备上激活此键,您需要将type="submit"添加到该按钮上。

var input = document.getElementById("myInput");
input.addEventListener("keyup", function(event) {
  if (event.keyCode === 13) {
   event.preventDefault();
   document.getElementById("myBtn").click();
  }
});
<!DOCTYPE html>
<html>
<body>
<h3>Trigger Button Click on Enter</h3>
<p>Press the "Enter" key inside the input field to trigger the button.</p>
<input id="myInput" value="Some text..">
<button id="myBtn" type="submit" onclick="javascript:alert('Hello World!')">Button</button>

</body>
</html>

  1. 示例:w3schools
  2. 关于stackoverflow的示例

请记住,您需要将type="submit"添加到该按钮…!否则它将无法在移动设备上正常工作…

只需将e.code=== "enter"更改为e.keyCode===13 **。它适用于桌面和移动设备。"Go"移动设备上的键的keyCode与"Enter"关键。在响应模式(移动)下检查console.log()中的e对象,您将了解差异。