2017-03-29 42 views
-1

當使用Javascript按下這兩個鍵時,如何關注搜索表單輸入字段?keydown上的javascript焦點搜索表單? (問號)

+ /將生成

所以基本上,在問號的關鍵字上,搜索表單會自動聚焦。


這是我目前的自舉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

檢查:HTTP://計算器。 com/questions/6014702/how-do-i-detect-shiftenter-and-generate-a-new-line-in-textarea –

+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或者可能重點是不是最好的。 Whatcha認爲?我正在尋找獲得成果的絕對優越方式。

+1

檢查我的答案。 –

+1

它適合你嗎? –

+0

是的,謝謝! – user7411567

2

嘗試

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

這項工作。你必須與/按鍵的鍵碼使用事件e.shiftKey(我用的219,因爲它是在意大利的鍵盤佈局的位置?)

$(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

哈哈,電子狗鑰匙:D – user7411567

+1

歐普,鍵盤在工作糟透了,對不起哈哈哈 –