2017-03-29 3 views
-1

Javascriptを使用してこれらの2つのキーを押した場合、検索フォーム入力フィールドにどのようにフォーカスするのですか?keydownのjavascriptフォーカス検索フォーム? (疑問符)

シフト + /が生成されますか?

基本的に、疑問符のkeydownでは、検索フォームにオートフォーカスが適用されます。ここで


私の現在のブートストラップ3検索フォームのコードは次のとおりです。

<form class="navbar-form navbar-right" role="form" method="post" action="{$WEB_ROOT}/knowledgebase.php?action=search"> 
    <div class="form-group"> 
     <input id="inputMessage" class="form-control" placeholder="Search website.com" type="text" name="search"> 
    </div> 
    <button type="submit" class="btn btn-default"></button> 
</form> 
+1

(?それはイタリアのキーボードレイアウトに位置だから、私は219を使用)/ボタンのキーコードでイベントe.shiftKeyを使用する必要があります。私は小さな変更を加えました。 –

+0

@ user7411567、私は小さな変更を加えました。 'e.preventDefault();'を答えの中の 'if'の中に移動しました。本番サイトのコードを更新してください。 –

答えて

1

チェックこのコードを試してみてください。

キー押下を格納するオブジェクトを作成し、各キー押下をオブジェクトに追加するeventListenerを追加します。

そしてキーコードシフト(16)と/(191)

var map = {}; //to store the keycodes 
 
onkeydown = onkeyup = function(e){ 
 
    e = e || event; 
 
    
 
    map[e.keyCode] = e.type == 'keydown'; 
 
    
 
    if(map["16"]==true && map["191"]==true){ // 16 => shift and 191/
 
     e.preventDefault(); 
 
     var elm=document.getElementById('inputMessage'); 
 
     elm.focus(); 
 
     
 
    } 
 
    /* insert conditional here */ 
 
}
<form class="navbar-form navbar-right" role="form" method="post" action="{$WEB_ROOT}/knowledgebase.php?action=search"> 
 
    <div class="form-group"> 
 
     <input id="inputMessage" class="form-control" placeholder="Search website.com" type="text" name="search"> 
 
    </div> 
 
    <button type="submit" class="btn btn-default"></button> 
 
</form>

0

これは動作しますが、多分あなたはもっときれいな解決策をアドバイス?

<script type="text/javascript"> 
$(document).keyup('keyup', function(event){ 
    if(event.which === 191) { 
     $('#inputMessage').focus(); 
    } 
}); 
</script> 

多分それはからkeyupすべきではないか、おそらく焦点は最高ではありません。なんて思う?私は結果を達成するための絶対的な優れた方法を探しています。

+1

私の答えをチェックしてください。 –

+1

それはあなたのために働いたのですか? –

+0

はい、ありがとう! – user7411567

2

$(document).on('keypress',function(e){ 
    if(e.keyCode == 63) { 
     $("#inputMessage").focus() 
    } 
}); 
1

この仕事を確認します。ます。http:// stackoverflowのあなたはこれをチェックし

$(document).on('keydown', function(e){ 
 
    if(e.shiftKey && e.keyCode == 219) 
 
    { 
 
    $("#search").focus(); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="search">

+0

haha​​ha、e shit key:D – user7411567

+1

Opss、作業中のキーボードが吸う、申し訳ありませんahah –