2009-05-14 14 views
0

私はasp.netアプリケーションを作成しており、ログインできるようにテキストボックスが表示されるようにユーザーがキーを押す必要があるフォームを持っています。キーを押すと、ラベルが消えてテキストボックスが表示されます。何らかの理由でFFやIEで 'onkeydown'イベントが発生していないのですが、Chromeではうまく動作します。アプリケーションはリンクブラウザを使用してAML端末で実行されますが、今はそのプラットフォームではテストできません。ここに私のコードは次のとおりです。IE7またはFF3でhtmlフォームが起動しないonkeydownイベント

<form id="form1" runat="server" onkeydown="CheckKey(event.keyCode)" 
enableviewstate="True" submitdisabledcontrols="False" visible="True"> 

<script type="text/javascript"> 

    function SetVisibility() { 
     var txtbx = document.getElementById("txtbx_login") 
     txtbx.style.display = "none"; 
     var form = document.getElementById("form1") 
    } 

    function CheckKey(keycode) { 
     if (keycode == 113) { 
      var txtbx = document.getElementById("txtbx_login") 
      txtbx.style.display = ""; 
      var lbl = document.getElementById("lbl_login") 
      lbl.style.display = "none"; 
     } 
    } 

</script> 

******他のフォーム要素を******

</form> 

取得することができた唯一の方法onkeydownイベントは、テキストボックスコントロールが表示され、フォーカスがある場合に動作します。何か不足していますか?助けてくれてありがとう!

答えて

3

問題は、onkeydownチェックがフォーム上に行われていることです。

は、ウィンドウイベントにイベントハンドラを追加するためにはJavaScriptを使用して、body要素にそれを移動してみてください、またはより良い:

function handleKeypress(e){ 

     var keycode = e.keyCode || e.charCode; 

     if (keycode == 113) { 
      var txtbx = document.getElementById("txtbx_login") 
      txtbx.style.display = ""; 
      var lbl = document.getElementById("lbl_login") 
      lbl.style.display = "none"; 
     } 

    } 
    window.onkeypress = handleKeypress; 

Firefoxであなたにもevent.charCodeを使用する必要があります。私はすべてのブラウザで上記をテストしていませんが、それはスタートです。

+0

パーフェクト。それがすべてです。どうもありがとうございました。 –

関連する問題