使用javascript或html跳过数字键盘输入按钮

时间:2016-09-30 20:41:06

标签: javascript android keyboard enter keyup

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

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

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

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

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

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

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的远程调试器。当我通过远程调试器键入enter键时,它成功读取13为键码。

1 个答案:

答案 0 :(得分:0)

我找到了答案。在Nexus 9的数字键盘上(不确定其他平板电脑),&#39;输入&#39;按钮实际上是标签按钮。 这很令人困惑,因为我可以为该按钮注册一个keydown,但不是一个keyup,这是我以前检查过的。所以我改成了一个keydown,并添加了&#39; 9&#39;到我的&#39; 13&#39;检查,这工作!