我有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的内容,但是嗯,嗯。
所以我的问题是我可以通过一种很好的方式禁用移动设备上的“自动关注输入”行为吗?