【问题标题】:Skip numeric keyboard enter button with javascript or html使用 javascript 或 html 跳过数字键盘输入按钮
【发布时间】:2016-09-30 20:41:05
【问题描述】:

我的最终目标是覆盖数字键盘上的输入按钮以关闭键盘。

我有一个输入字段,我最终希望用户在其中输入电话号码。因此,我这样设置它,我用一个表单包围输入以尝试覆盖输入按钮(我正在使用角度):

<form ng-submit="closeKeyboard()">
    <input id="myInput">
</form>

这成功地覆盖了回车键并关闭了键盘。接下来,我只想要数字键盘,所以我更新了我的输入:

<input id="myInput" type="tel" pattern="\d{3}[\-]\d{3}[\-]\d{4}">

这可以成功调出数字键盘(是的,我知道将类型设置为数字或数字(不记得哪个)也可以)。但是,现在输入按钮没有被覆盖。所以我尝试将它设置为有一个 keyup 监听器来忽略输入按钮:

elem.keyup(function (event) {
    var x = event.keyCode;
    var y = event.which;
    if (x == 13 || y == 13) {
        $element.find(":input").blur();
    }
});

这成功地捕获了许多个键。当我在数字键盘上键入“5”和“6”键时,它是成功的。除非我单击数字键盘上的输入按钮,否则它会跳转到屏幕上的下一个输入字段。请帮忙! PS,我正在 Nexus 9 上对此进行测试,并通过开发人员工具使用 Chrome 的远程调试器。当我通过远程调试器键入回车键时,它成功读取了 13 的键码。

【问题讨论】:

    标签: javascript android keyboard enter keyup


    【解决方案1】:

    我找到了答案。在 Nexus 9 的数字键盘上(不确定其他平板电脑),“输入”按钮实际上是选项卡按钮。 这很令人困惑,因为我可以为按下该按钮注册一个 keydown,但不能注册一个 keyup,这是我之前一直在检查的。所以我改成 keydown,并在我的 '13' 检查中添加了 '9',然后就成功了!

    【讨论】:

    • 另外,调用 event.preventDefault() 也可以停止自然标签内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2018-05-25
    相关资源
    最近更新 更多