2011-06-20 133 views
0

我正在尋找一段代碼,如果用戶按下某個代碼,它會將標記的焦點移動/標籤到標記中的元素鍵入上一個元素。獲取jQuery將焦點移動/標籤到鍵盤上的下一個輸入元素

例如每當用戶在輸入框中輸入一個字符/數字時,焦點就會自動標籤到下一個輸入框,就像一些串行代碼輸入表單一樣。

我以前曾嘗試使用jQuery的.live和.keypress無濟於事。這是我寫這篇文章的代碼。

$('.fmq').keypress(function() { 
    $(this).next().focus(); 
} 

這裏是我的標記有

<input name="serial[1]" type="text" maxlength="1" class="fmq"> 
<input name="serial[2]" type="text" maxlength="1" class="fmq"> 
<input name="serial[3]" type="text" maxlength="1" class="fmq"> 
<input name="serial[4]" type="text" maxlength="1" class="fmq"> 
<input name="serial[5]" type="text" maxlength="1" class="fmq"> 
<input name="serial[6]" type="text" maxlength="1" class="fmq"> 

希望這是足夠的信息,抓住了關鍵,如果沒有的話,請跟我要更多。

感謝任何幫助和道歉,如果這之前發佈。

乾杯,

丹。

回答

2

您還沒有關閉您的來電keypress

$('.fmq').keypress(function() { 
    $(this).next().focus(); 
}); 

這對我的作品。

+0

我無法相信我錯過那! :(哦親愛的,回到編碼101爲我哈哈。非常感謝您突出顯示的錯誤。 – zealisreal

+0

保持在Firebug或Chrome開發人員工具的控制檯窗口打開時,編寫JavaScript的所有時間。它會指出這樣的明顯錯誤一。 –

0

JQuery用戶界面已經有這個,我在下面的例子我包括一個maxchar屬性來關注下對焦能力要素(輸入,選擇,文本區域,按鈕和對象)

text 1 <input type="text" value="" id="txt1" maxchar="5" /><br /> 
text 2 <input type="text" value="" id="txt2" maxchar="5" /><br /> 
checkbox 1 <input type="checkbox" value="" id="chk1" /><br /> 
checkbox 2 <input type="checkbox" value="" id="chk2" /><br /> 
dropdown 1 <select id="dd1" > 
<option value="1">1</option> 
<option value="1">2</option> 
</select><br /> 
dropdown 2 <select id="dd2"> 
<option value="1">1</option> 
<option value="1">2</option> 
</select> 


$(function() { 
    var focusables = $(":focusable"); 
    focusables.keyup(function(e) { 
     var maxchar = false; 
     if ($(this).attr("maxchar")) { 
      if ($(this).val().length >= $(this).attr("maxchar")) 
       maxchar = true; 
      } 
     if (e.keyCode == 13 || maxchar) { 
      var current = focusables.index(this), 
       next = focusables.eq(current+1).length ? focusables.eq(current+1) : focusables.eq(0); 
       next.focus(); 
     } 
    }); 
}); 
相關問題