0

私はこのコードを持っています

<form method="post" class="form-horizontal" role="form">
  <label for="qt" class="control-label">Qt</label>
  <input type="text" class="form-control" id="qt" name="qt" min="1" step="1" />
  <label for="code" class="control-label">Code</label>
  <input type="text" class="form-control" id="code" name="code" placeholder="code" />
  <button type="submit" class="btn btn-default">Submit</button>

オペレーターはバーコード スキャナーを使用してデータを入力フィールドに挿入するため、"qt" が変更されたときに次の入力に自動的にフォーカスし、"code" が変更されたときにフォームを送信する jQuery コードを作成する必要があります。

私は別の同様の投稿を読んで、これを書きました:

$(document).ready(function(){
  $("#qt").change(function () {
    $(this).nextAll("input").first().focus();
  });
  $("#code").change(function () {
    this.form.submit();
  });
});

しかし、それは正しく動作しません。あなたはjsfiddle.netで試すことができます

4

1 に答える 1

1

あなたの投稿から:

私はこのコードを持っています

実際、そうではありません。jsFiddle リンクのコードは大きく異なります。質問で示したフラットな構造ではなく、ネストされた構造があります。nextAll現在の要素の兄弟間でのみ検索します ( HTML 全体ではありません)。

トラバーサル メソッドをより複雑にする必要があります。次のようなことができます:

$(this).closest('div.control-group').next().find('input').first().focus();

フィドル

于 2013-11-05T09:41:59.203 に答える