2011-08-28 55 views
0

我有一個HTML表單,其中最大字段值設置爲1個字符。因此,JavaScript需要超快速。但經過測試,腳本看起來太快了,所以它會錯過字符,除非我輸入的速度很慢。緩慢的JavaScript

<script type="text/javascript"> 
    function formfocus() { 
     document.getElementById('element').focus(); 
    } 
    window.onload = formfocus; 

function moveOnMax(field,nextFieldID){ 
    if(field.value.length >= field.maxLength){ 
    document.getElementById(nextFieldID).focus(); 
    } 
} 
</script> 

<input class="text" type="text" name="1" id="element" maxlength="1" onkeyup="moveOnMax(this,'2')"><input class="text" id="2" onkeyup="moveOnMax(this,'3')" type="text" name="2" maxlength="1"> 

任何人都知道一種方法來加快速度,或者我堅持不得不指示訪客慢點?

+1

這不是速度問題,而是取決於您正在收聽的事件。請包含註冊'moveOnMax'事件處理程序的代碼。 – phihag

+1

你使用什麼事件來調用JavaScript,你如何附加它? – Oded

+0

你沒有顯示你的所有代碼,是嗎?你在哪裏附加按鍵事件。 –

回答

0

正如你所提到的所有字段的最大長度是1個字符,那麼爲什麼要檢查每個字段的值的長度正好的onkeyup各個領域的事件處理使聚焦到下一個字段。

<script type="text/javascript"> 
    function formfocus() { 
     document.getElementById('element').focus(); 
    } 
    window.onload = formfocus; 

function moveOnMax(nextFieldID){ 
    document.getElementById(nextFieldID).focus(); 
} 
</script> 

<input class="text" type="text" name="1" id="element" maxlength="1" onkeyup="moveOnMax('2')"> 
<input class="text" id="2" onkeyup="moveOnMax('3')" type="text" name="2" maxlength="1"> 
<input class="text" id="3" onkeyup="moveOnMax('4')" type="text" name="2" maxlength="1"> 
+0

你的代碼肯定是較小的,但不幸的是我仍然可以輸入比JavaScript更快的指令來移動光標。 – Ryan

+0

代替** onkeyup **事件處理程序,請使用** onkeypress **事件處理程序。有用... – Karthik