HTML格式:禁用输入按键功能而没有副作用

时间:2019-01-14 15:01:12

标签: javascript html forms user-experience

我有a problem的移动浏览器会在用户按下Enter键时自动关注表单字段。我想禁用此“自动专注于输入”行为。我有一个解决方案,但是该解决方案禁用了字段之间的制表符。有更好的解决方案吗?

这是一个简单的表单,您可以在其中演示自动对焦:

<form action="/action_page.php" method="get">
    <input name="text1" value="Bla bla"><br>
    <input name="text2" value="Some text"><br>
    <input type="submit" value="Submit">
</form>

这是我尝试解决的问题(jsfiddle):

<form action="/action_page.php" method="get" onkeypress="return handleEnter(event.keyCode);">
    <input name="text1" value="Bla bla"><br>
    <input name="text2" value="Some text"><br>
    <input type="submit" value="Submit">
</form>

window.handleEnter = function(keyCode) {
     if (keyCode == 13) {
         $(':focus').blur(); // intent: to stop auto focus
         return false; // intent: prevent submit
     }
     return true;
}

在移动设备上尝试此操作后,按Enter(Android键盘上的蓝色大按钮)实际上就像一个选项卡,直到我们将焦点放在最后一个可聚焦的表单元素上为止,这时它的行为就像一个enter。如果将tabindex="-1"添加到每个输入字段,则可以防止自动聚焦于移动设备,但是也可以阻止在桌面上进行制表。而且我想我们可以一起修改仅更改移动版tabIndex的内容,但是嗯,嗯。

所以我的问题是我可以通过一种很好的方式禁用移动设备上的“自动关注输入”行为吗?

0 个答案:

没有答案