2011-08-13 37 views
1

キーコードを使用してフォーカスを合わせる入力がほとんどありません。入力がフォーカスされている場合にキーダウンショートカットを無効にする

私はしようとしています:入力に焦点を当てるときは、キーコード機能を無効にし、フォーカスしていないときは有効にします。

私はこれを試してみました:

var hotkeys_function = false; 
if (!hotkeys_function){ 
    $(document).keydown(function(e) { 
     if (e.keyCode == 71) { 
     $("#input1").fadeIn(); 
     $("#input1").focus().select(); 
      var hotkeys_function = true; 
     } 
    }); 

} 

そして、この:

if ($("#input1").select()) { 
    var hotkeys_function = true; 
} 

が、どれも働いているようです。

答えて

1

ない$("#input1").select()けど$("#input1").focus()

実際、変数は必要ありません。入力がフォーカスされているかどうかを確認して、動的に戻すことができます。

$(document).keydown(function(event) { 
    if($("#input1").is(":focus")) return; //Will fail if already focused. 

    if (event.keyCode == 71) { //g 
     $("#input1").fadeIn(); 
     $("#input1").focus().select(); 
    } 
}); 

Working example

+0

私はinput1.select()または.focus()を試しました。なしwork – jQuerybeast

+0

例を試してみてください。 –

+0

これは、別の入力がフォーカスされている場合にも表示されます。 – pimvdb

0

あなたができることは、これ以外の変数はありません:http://jsfiddle.net/pimvdb/YnVPQ/

$(document).keydown(function(e) { 
    if (e.keyCode == 71) { 
     if($("input").is(":focus")) return; // abort if any focused textboxes 

     $("#input1").fadeIn(); 
     $("#input1").focus().select(); 
    } 
}); 
+0

動作していないようです。私が$( "input")フィールドに入力したものは動作しません。それは何かでなければならない、それはhtml全体ではない。実行時に、1つの入力が集中しているようです。私も$( "#input1")を試しましたが、もう一度焦点を当てません。 – jQuerybeast

+0

申し訳ありませんが、明らかにテキストが入力されないようにしています。私の編集を見てください。 – pimvdb

関連する問題