Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用js更改平板电脑的输入焦点?_Javascript_Html_Focus_Tablet_Inputbox - Fatal编程技术网

Javascript 如何使用js更改平板电脑的输入焦点?

Javascript 如何使用js更改平板电脑的输入焦点?,javascript,html,focus,tablet,inputbox,Javascript,Html,Focus,Tablet,Inputbox,当达到输入的最大长度时,我使用下面的JavaScript将焦点更改为表单中的下一个输入。它在台式机上运行良好,但在平板电脑上不起作用。当当前输入失去焦点时,虚拟键盘会自动关闭,而下一个inputbox不会获得焦点 有人知道如何在不使用本机“下一步”按钮的情况下更改平板电脑上的输入焦点吗 投入 函数myCtrl(elmnt) { if(elmnt.value.length==elmnt.maxLength) { next=elmnt.tabIndex if(next在ipad上是不可能做到的。我

当达到输入的最大长度时,我使用下面的JavaScript将焦点更改为表单中的下一个输入。它在台式机上运行良好,但在平板电脑上不起作用。当当前输入失去焦点时,虚拟键盘会自动关闭,而下一个inputbox不会获得焦点

有人知道如何在不使用本机“下一步”按钮的情况下更改平板电脑上的输入焦点吗


投入
函数myCtrl(elmnt)
{
if(elmnt.value.length==elmnt.maxLength)
{
next=elmnt.tabIndex

if(next在ipad上是不可能做到的。我不知道android是否做到了,但我想你也希望在ipad上做到。正是因为苹果的设计,移动Safari中的一些焦点事件被忽略了

您可以查看有关堆栈溢出的以下问题:

或者看看艾伦·派克说的:

根据设计,Mobile Safari中的一些focus()事件被忽略 网站会不必要地使用focus(),而打开键盘是不必要的 慢/侵入性。这在使用框架时尤其令人讨厌 就像SproutCore在基于超时的运行循环中完成工作一样 Wei的回答很好地说明了如何解决这个问题


很抱歉,我没有找到与android相同的链接。这可能是因为它正在那里工作,或者似乎没有人对android上的此类东西感兴趣:)

我在中复制了您的代码,但在chrome和firefox中不起作用……将所有代码粘贴到html框中就可以了。谢谢您的回答。很抱歉,我会查看它
<!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>