私は自分自身にJavascriptを教えるための変換Webアプリを作成しています。ユーザーはテンキー(基本的には演算子のない電卓)でデータを入力できます。また、テンキーと同じようにデータを挿入するキーストローク(1〜9)を検出する機能を設定しました。また、すべてのデータをクリアする文字「c」
私の問題は、検索フィールド(オートコンプリートを使用してユーザーが他のコンバージョンを検索できるようにする)もあることです。ユーザーが「c」または数字キーを使用して何かを検索し、テンキーと検索フィールドの両方にデータを入力するようにしたくありません。
私のアイデアは、ifステートメントを作成して、検索フィールドがアクティブ(フォーカス)であるかどうか、および変数(有効)をfalseに変更して、キーストローク検出を無効にするかどうかを判断することでした。
私が抱えている問題は、focus属性を持つifステートメントを保持する関数が機能していないことです。
私のとりとめのないことが意味をなさない場合は、コードが問題を解決することを願っています。
これがfocus属性を持つifステートメントです
$(document).ready(function(){
if($(':focus').attr('#searchInput') == 'input')){
enabled === false;
}
});
キーストローク検出のコードは次のとおりです(スペースを節約するために冗長な部分を省略しました
document.onkeydown = function(event){
var key = event.charCode || event.keyCode;
if(enabled === true){
if(key === 67){
clearInput(input); //Clears form input (input is my form ID)
}else if(key === 48){
writeInput(input, zero); //Zero is a var equaling 0
}
...
}else{
return false; //if enabled is false don't detect keystrokes
}
};
どんな助けでも大歓迎です。意味がわからない場合は、喜んで説明します(または投稿を編集します)。