2012-03-28 50 views
4

當達到輸入的最大長度時,我正在使用下面的JavaScript將焦點更改爲表單中的下一個輸入。它在桌面上運行良好,但不適用於平板電腦。當前輸入失去焦點時,虛擬鍵盤自動關閉,下一個輸入框不獲得焦點。如何使用js更改平板電腦上的輸入焦點?

有誰知道如何改變輸入焦點在平板電腦上,而無需使用原生「下一步」按鈕?

<!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="[email protected]" 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> 
+0

這樣的事情我複製在[的jsfiddle]你的代碼(http://jsfiddle.net/d8Nas/)和它不適用於Chrome和Firefox ... – Neysor 2012-03-28 15:51:08

+0

在[JsFiddle](http://jsfiddle.net/d8Nas/3/)中的HTML框中粘貼所有代碼。 感謝您的回答。 – Danja 2012-03-29 08:44:03

+0

對不起,請看看它 – Neysor 2012-03-29 17:12:36

回答

2

這是不可能做到這一點在iPad上。我不知道android是否可以,但我想你也想在ipad上有這個功能。這是因爲蘋果的設計,移動Safari中的一些焦點事件被忽略。

你可以看一下對堆棧溢出這些問題:

或看quora其中阿倫派克說:

根據設計,Mobile Safari中的某些focus()事件將被忽略。很多 網站會做不必要的焦點(),並提出鍵盤是 緩慢/侵入性。當使用像SproutCore這樣的框架 在基於超時的運行循環中完成它們的工作時,這特別惱人。韓 韋的回答是一個很好的看看如何解決這個問題。

對不起,我沒有找到Android的平等鏈接。這可能是因爲它在那裏工作,或似乎沒有人有興趣在Android :)

相關問題