2017-07-05 8 views
0

私はあなたの入力フィールドを持っています。 2つはタイプ入力を要求する入力です。あなたのように以下を参照してください。最後のタブを通過した後、入力フィールドにどのように再フォーカスしますか?

通常の方法はcs1に入力され、可能な値でヒントが削除されます。可能な値とタブを選択して、名前入力にします。その時点で名前が自動的に入力されたかどうかは不明です。名前を入力するか、名前を入力します。その後、送信入力にタブし、それをクリックするか、タブを押します。 あなたが悪いURL(アドレスバー)に置かれたタブの場合、これが問題の場所です。送信をクリックすると、カーソルがcs1入力に正しく戻されます。 私は以下のようにすべての種類のものを試しましたが、どれも動作しません。

$(document).ready(function() { 
    $('#ckin1').on('keydown', function (e) { 
     if (e.keyCode == 9) { 
      document.body.firstElementChild.focus(); 
      e.preventDefault(); 
      return false; 

     } 
    }); 
}) 
$(document).ready(function() { 
$("#ckin1").click(function() { 
       $("#cs1").focus(); 
      }); 
     }); 

ckin1からのタブ送信後にcs1入力にカーソルが自動的に戻るようにするにはどうすればよいですか?

+0

は' keyup' ...一度それを試してみてください! –

+0

'$( 'A')( 'keyUpイベント'、関数(E){ 'ここ' IF(e.which == 9){ にconsole.log();} });上' –

+0

変更to 'keyup'は動作を変更するようには見えなかった。カーソルはまだアドレスバーに表示されます。 –

答えて

0

これはうまくいくようです。すでにjQueryを使用しているので、最初の要素をフォーカスするために使用します。代わりにしてみてくださいkeydown` `の

$("#ckin1").on('keydown', function(e) { 
 
    var keyCode = e.keyCode || e.which; 
 

 
    if (keyCode == 9 && !e.shiftKey) { 
 
    e.preventDefault(); 
 
    $('#cs1').focus(); 
 
    return false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="cs1" type="text" value="" placeholder="Call Sign" maxlength="16" /> 
 

 
<input id="Fname" type="text" value="" name="Fname" placeholder="First Name" /> 
 

 
<input id="ckin1" type="submit" value="Check In" />

+0

私はこの変更がまだ行動に違いがないことを恐れています。最初の(cs1)入力タグから開始しても、2つのタブがカーソルをURLに配置します。 –

+0

@KeithDKaiser次に、問題を再現するためにコードを追加する必要があります。そのスニペットを実行すると正しく動作します。 – gforce301

+0

#gforce301これはうれしいことですが、コードがかなり広がっています。私はどのくらい含めるべきかわかりません。いくつかのガイドラインを教えてもらえますか? –

関連する問題