2011-02-14 7 views
2

私はASP.NETを使用していますが、特定のページでは、従来のフルページのポストバックではなく、リクエストがAJAXで行われるため、 。私の問題は、ユーザーが最後のテキストボックスを塗りつぶしてEnterを押すと、テキストボックスのフォーカスが失われ、ページが一番下までスクロールすることです。どのようなイベントがJavaScriptで呼び出されているのか把握する方法

私はonblurイベントを使用しようとしましたが、動作していないので、実際にEnterキーが押されたときにどのイベントが呼び出されているのか不思議です。

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

$("#loginPass").blur(function (e) { 
      if (e.keyCode == 13) 
       $("#DealerLogin").click(); 
     }); 

私はFirefox用のFirebugを持っていますが、関連する操作が発射され、JS何を見てする方法を見つけ出すことはできません。

+3

'keydown'、' keypress'、 'keyup'です。その順序で。 – JCOC611

+0

'e'はイベントオブジェクトであり、トリガされたもの(ソース要素、トリガのタイプなど)を含む、それが表すイベントの完全なコンテキストを含む必要があります。 Firebugでそれを調べることができるはずです。 –

+0

@ JCOC611 [Tab]、物事はより複雑になります。ぼやけた入力はkeydownを取得し、新たにフォーカスされた入力はkeyupを取得します。 – kirilloid

答えて

4

私は自分自身をjavascriptのエキスパートと呼んでいませんが、これが私が試しているものです。

メソッドが呼び出されているかどうかわからないときは、信頼できる古い「警告(メソッド1の場合)」を使用します。私のコードをデバッグする技術。

$(document).ready(function(){ 
    alert("In document.ready()"); 

    $("#loginPass").blur(function(e) 
    { 
     alert("In loginPass.blur() with keycode = " + e.keyCode); 
    }); 

    $("#loginPass").keydown(function(e) 
    { 
     alert("In loginPass.keydown() with keycode = " + e.keyCode); 
    }); 
}); 

それは確かに上品な技術ではないが、しばしば明らかにされます。あなたのメソッドのどれも呼び出されていない場合は、テキストボックスIDが "loginPass"と正しく一致しているかどうかを確かめてください。 Firebugのスクリプトパネルで

+0

これはよく役立ちます。欠点は、さまざまなブラウザでテストする必要があることです。そして、いくつかのブラウザーでは、イベントの順序はランダムでさえあります。 – kirilloid

5

、あなたは一時停止ボタンをクリックすることができます。

Pause btn in Firebug

は、コードをステップ実行、その後、あなたはエンターキーを押し、右の前にそれを試してみてください。

+1

プリングス! ...ああ、+1 :) – alex

0

私の問題は、ユーザーが最後のテキストボックスから を満たし、押したときに は、テキストボックスがフォーカスを失っ入力していることであるすべての方法 下へ ページがスクロールします。

Hmm。これは間違いなくブラウザのデフォルトの動作ではありません。あなたは知っている必要があります、これは何をし、ちょうどこのイベントまたはコードの一部をキャッチします。

関連する問題