2012-04-27 12 views
0

"btnOne"という名前のボタンを持つCalculatorという基本的なHTMLフォームがあります。私が望むのは、ユーザーがキーボードの "1"キーを押すと、 "btnOne" HTMLボタンのonClickイベントが発生するためです。これを実現しようとしonKeyDownトリガーをHTMLボタンのonClickイベントにする

は、私は私の文書のHEADタグでこの機能を配置:

<head> 
    <SCRIPT LANGUAGE="JavaScript"> 

     //other functions... 

     document.onkeydown = function(e){ 
      if (!e) e = window.event; 
      if(e.keycode == '49') { 
       document.Calculator.btnOne.click(); 
      } 
      return false; 
     } 
     </SCRIPT> 
</head> 

私は間違った場所にこのスニペットを入れているだろうか?関数を実行させるために何か必要なことはありますか?私は実際にWeb開発の初心者で、私が何をやっているのかわからない!もちろん、このボタンを動作させる方法を理解したら、他のすべてのボタンのif文を追加します。

答えて

1

これを書くには、はるかに簡単でクリーンな方法でhttp://api.jquery.com/category/events/をチェックしてください。あなたが持っているものは基本的には正しいですが、ドキュメント準備完了イベントでこれをラップするとうまくいくでしょうから、のDOMがロードされた後でイベントがをバインドします。

jQueryを使ってあなたのコードは、イベントから抽象的に、しかしそのおそらく良いアイデアをこの

http://jsfiddle.net/HXYAD/

のデモンストレーションを行います。この

jQuery(function() { 
    jQuery(window).keypress(function(e){ 
     if (e.which === 49) { 
       jQuery("#btnOne").click(); 
     } 
    }); 
}) 

のようなものをHERES作業JSフィドルを見てしまいますあなたが持っていないようにパラメータ化された関数にクリックするためのハンドラ

jQuery('#btnOne').click(function(){ 
    //some code 
}); 

jQuery('#btnTwo').click(function(){ 
    //some similar code 
});  
jQuery('#btnThree').click(function(){ 
    //some more similar code 
}); 
+0

これは間違いなく助けになります。 jQueryを使用したのは初めての試みです。だから私はそれにいくつか問題があると思います。私はこのjQuery関数を入れようとしましたが、Firebugは私に "jQueryは定義されていません"というエラーメッセージを出しています。私はすでに、すべてのボタンが使用しているhandleBtnClickというイベントハンドラを持っています。 –

+0

また、私はjsfiddleにコードを入れ、それは0.5秒間動作し、フォーム全体が消えて、{「エラー」:「POSTリクエストを使用してください」}と言います。何か案は? –

+1

jQueryが定義されていない場合は、jqueryファイルが含まれていない可能性があります。 http://docs.jquery.com/Downloading_jQuery あなたは私のためにjsFiddleを投稿して、あなたが何を意味するのか見てみることができますか? –

関連する問題