2016-09-30 66 views
0

我的最终目标是覆盖数字键盘上的输入按钮以关闭键盘。用javascript或html跳过数字键盘输入按钮

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

<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。

回答

0

我找到了答案。在Nexus 9上的数字键盘上(不知道其他平板电脑),“输入”按钮实际上是标签按钮。 这是令人困惑的,因为我可以为该按钮注册一个keydown,但不是一个keyup,这是我之前一直在检查的。所以我改成了keydown,并在我的'13'支票上加了'9',而且工作正常!

+0

另外,调用event.preventDefault()也会停止自然选项卡的内容 – Kevin