如何使用js更改平板电脑上的输入焦点
How to change the input focus on a tablet with js?
当达到输入的最大长度时,我使用下面的JavaScript将焦点更改为表单中的下一个输入。它在台式机上运行良好,但在平板电脑上不起作用。当当前输入失去焦点时,虚拟键盘会自动关闭,下一个输入框不会获得焦点。
有人知道如何在不使用本机"下一步"按钮的情况下更改平板电脑的输入焦点吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, user-scalable=no, maximum-scale=1.0" />
<title>inpuTest</title>
<script language="JavaScript">
function myCtrl(elmnt)
{
if (elmnt.value.length==elmnt.maxLength)
{
next=elmnt.tabIndex
if (next<document.frmContact.elements.length)
{
document.frmContact.elements[next].focus()
}
}
}
</script>
<style type="text/css">
form{
margin:0 auto;
background-color:#CCC;
padding:2%;
border:1px solid #999;
}
form input,textarea{
width:96%;
}
</style>
</head>
<body>
<form name="frmContact" method="post">
<strong>1. Your name:</strong> <span class="times_17">(max-lenght 4)</span><br /><br />
<input name="formName" tabindex="1" value="" placeholder="Name" maxlength="4" type="text" onFocus="this.select()" onkeyup="myCtrl(this)"><br /><br />
<strong>2. Your email:</strong> <span class="times_17">(required)</span><br /><br />
<input id="formEmail" name="formEmail" tabindex="2" value="" placeholder="example@mail.it" maxlength="4" type="text" onFocus="this.select()" onkeyup="myCtrl(this)"><br /><br />
<strong>3. Your number:</strong><br /><br />
<input name="formWebsite" tabindex="3" placeholder="Only numbers 1234" maxlength="4" type="number" onFocus="this.select()" onkeyup="myCtrl(this)"><br /><br />
<strong>4. Your comments:</strong> <span class="times_17">(required)</span><br /><br />
<textarea name="formComment" tabindex="4" id="comment" cols="45" rows="5" class="input2"></textarea>
</form>
</body>
</html>
在ipad上不可能做到这一点。我不知道安卓是否有,但我想你也想在ipad上拥有它。正是由于苹果的设计,Mobile Safari中的一些焦点事件被忽略了。
您可以在堆栈溢出上查看以下问题:
- Jquery关注标签点击上的文本框
- ipad html5网站中的键盘自动对焦
- ipad上的JQuery focus()方法
或者看看Allen Pike说的quora:
根据设计,Mobile Safari中的一些焦点()事件被忽略。很多网站会不必要地执行focus()操作,而打开键盘缓慢/侵入性。当使用框架时,这尤其令人讨厌比如SproutCore,它们在基于超时的运行循环中完成工作。韩魏的回答很好地说明了如何解决这个问题。
我很抱歉,我没有找到一个平等的链接为android。这可能是因为它在那里工作,或者似乎没有人对android上的这样一件事感兴趣:)
相关文章:
- 在IE9中的输入字段中输入焦点最近按钮
- 那里的维基媒体代码是如何输入焦点的
- 无法通过 JavaScript 在输入焦点上触发键盘
- 输入焦点关闭键盘,需要长时间触摸
- jQuery-滚动到某个元素时自动输入焦点
- 输入:焦点只工作一次
- 输入焦点取决于更大的父元素与 jQuery
- 如何定位单个输入焦点
- 关闭输入焦点上的滑动菜单
- 输入焦点字段,然后在页面加载时添加类
- 无法使用 keyUp 更改表内的输入焦点
- 如何在设备定向时丢失输入焦点
- Phonegap Android 在输入焦点 Javascript 上显示键盘
- 在 CkEditor 中输入焦点
- 如何使用js更改平板电脑上的输入焦点
- 在输入焦点时隐藏ios设备上的键盘
- 当鼠标悬停在其他元素上时,如何删除和重新设置输入焦点
- onmousedown事件停止输入焦点
- ngTags输入焦点自动完成
- 使用jQuery验证器禁用自动输入焦点