我有一個ASP.NET Web窗體項目,我試圖實現自動標籤。我是新來jquery,但我發現一個代碼片斷在線做自動標籤,我想用它來自動標籤多組文本框。如何簡化此jQuery腳本?
例如:
Textbox1 -> Textbox2 -> Textbox3
Textbox4 -> Textbox5 -> Textbox6
但不是:
Textbox3 -> Textbox4
希望是有道理的。無論如何,我有以下代碼:
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".autotab").keyup(function() {
if ($(this).attr("maxlength") == $(this).val().length) {
var index = $(".autotab").index(this);
var item = $($(".autotab")[++index]);
if (item.length > 0)
item.focus();
}
});
$(".autotab2").keyup(function() {
if ($(this).attr("maxlength") == $(this).val().length) {
var index = $(".autotab2").index(this);
var item = $($(".autotab2")[++index]);
if (item.length > 0)
item.focus();
}
});
});
</script>
<input name="tbOne" type="text" maxlength="3" id="tbOne" class="autotab" />
<input name="tbTwo" type="text" maxlength="3" id="tbTwo" class="autotab" />
<input name="tbThree" type="text" maxlength="4" id="tbThree" class="autotab" />
<input name="tbFour" type="text" maxlength="3" id="tbFour" class="autotab2" />
<input name="tbFive" type="text" maxlength="3" id="tbFive" class="autotab2" />
<input name="tbSix" type="text" maxlength="4" id="tbSix" class="autotab2" />
我如何重構的複製/粘貼代碼到一個單一的功能?
@ user1689607:非常好的問題。我已經完全改變了我的回答 – Eric
您正遇到*「閉環中的問題」*問題。最簡單的解決方案可能是使用'.each()'。返回'var els = this; return this.each(function(i,el){...});' –
@ user1689607:每個都不能在這裏工作... – Eric