0

キーアップ時に入力テキストフィールドを次の行にフォーカスさせようとしています。

jQuery コード:

for (var counter = 0; counter < 4; counter++) {
    $("<input>", {
        "class":"anBox",
        size: 1,
        maxlength: 1
    }).appendTo('#answerLine_' + counter);
};
$(".anBox").keyup(function () {
    if (this.value.length == this.maxLength) {
      $(this).next('.anBox').focus();
    }
});

ここにある:jsfiddle

4

4 に答える 4

1

.next() の使用法が正しくありません。使用してみてください

$(this).parent().next('span').find('.anBox').focus();
于 2013-04-18T12:52:45.183 に答える
0

.anBox「次」がないからです。次.anBoxは別のスパンにあります。1 つの親スパンを上ってから、次のスパンに移動して、.anBoxそこでを見つける必要があります。

if (this.value.length == this.maxLength) {
  $(this).parent().next().find('.anBox').focus();
}

maxLengthまた、スクリプトで常に「1」と比較しています。次の入力ボックスは、「1」を押した場合にのみフォーカスされます

于 2013-04-18T12:52:45.470 に答える
0

next()DOM で次に一致する要素を提供しません。セレクターとして渡したものと一致する場合、次の兄弟のみが提供されます。

あなたが求めているものを得るために、nextInDOM()ユーティリティ(免責事項:私は作者です)を使用して、次のように使用できます。

$(this).nextInDOM('.anBox').focus();

于 2013-04-18T12:56:12.587 に答える