2017-11-01 17 views
0

私は検索フィールドにユーザータイプとして提案を表示するためにオートコンプリートライブラリを取得しようとしています。.focus()に問題があります。

ただし、計画どおりに動作していません。 .jarの.focus()行6のコメントが解除されると、入力フィールドにフォーカスが当てられますが、自動脆弱性が機能し始めるには余分なクリックが必要です。

それはあなたのコードを見たときに説明した方が良いでしょう:https://jsfiddle.net/pu7draz2/6/

$("#nav-search-button").click(function(e) { 
e.preventDefault(); 
$("#nav-main-contents").hide(); 
$("#nav-search").show(1000); 
//$("#channel-search-input").focus(); // <-- uncomment me 
}); 
$('#channel-search-input').focusout(function() { 
$("#nav-search").hide(); 
$("#nav-main-contents").fadeIn(800); 
$("#channel-search-input"). 

をしては(.focusコメント)、あなたは自動提案が動作しますので、手動で二回検索ボックスをクリックしなければならない、これは同じになります.focus()が有効なとき。しかし、私は、自動提案がユーザータイプとして動作するようにしたいと思います。

答えて

0

$( "#channel-search-input")の代わりに次のコードを試してみてください。

$("#channel-search-input").keydown(function() { 
    alert("key down !!!"); 
0

トリガ以下に示すようにフォーカスした後$("#channel-search-input").click();を使用してテキストボックスのclickイベント。

$("#nav-search-button").click(function(e) { 
    e.preventDefault(); 
    $("#nav-main-contents").hide(); 
    $("#nav-search").show(1000); 
    $("#channel-search-input").focus(); 
    $("#channel-search-input").click(); 
}); 
1

これは動作します:

$("#nav-search-button").click(function(e) { 
    e.preventDefault(); 
    $("#nav-main-contents").hide(); 
    $("#nav-search").show(1000, function(){ 
     $("#channel-search-input").trigger('click').focus(); 
    });  
}); 
0

INPUTとイベントをonkeyupの試してみてください。 onkeyupイベント関数で自動脆弱性のコードを追加する。あなたは私の古いコードからいくつかのチェックが必要な場合があります

function onkeyupfn(e) { 
    var key = window.event ? e.keyCode : e.which; 

    if (key == 40 || key == 38) { 
     scrolldiv(key); 
    } 
    else { 
     autosuggestion(); 
    } 
}