2009-09-03 3 views
0

私がしようとしているのは 入力フィールド(id = txtSearch)ののエスケープのキーを押すと、いくつかのコードが実行されるということです。jQueryの要素へのバインドID

これは私のコードです:

$(document).ready(function() { 
    $('#txtSearch').bind('keyup', function(e) { 
     var characterCode; // literal character code will be stored in this variable 
     if (e && e.which) { //if which property of event object is supported (NN4) 
      e = e; 
      characterCode = e.which; 
     } else { 
      characterCode = e.keyCode; 
     } 
     if (characterCode == 27) //if esc key 
     { 
      //do stuff 
     } 
    }); 
} 

それは私のために仕事をdoesntの。

$('#txtSearch').bind('keyup', function(e) { 

と::私はその行を変更するかどうただし、

$(document).bind('keyup', function(e) { 

すべてが動作します。しかし、私は... ESC 文書全体にてからkeyupをバインドする必要はありません

私は特定の のテキスト検索要素とからkeyupをバインドする方法上の任意の提案は? (またはそのdivを含むもの)

ありがとう!私は

$('input#txtSearch').bind('keyup', function(e) { 

考える

+2

あなたは何をすべきでしょうか。 '$( '#txtSearch')。length'を調べて、そのセレクタがどの要素にもマッチするかどうかを調べることができます。 –

+1

asp.netで作業していますか?これは要素のidをmangleするので、代わりにクラスを使いたいかもしれません。 – krdluzni

答えて

0

は、あなたが探している行です。

優しさ、

ダン

0

あなたのhtmlにid txtSearchを持つ要素を持っていることを確認してください。

あなたはASP.NETを使用している場合は、jQueryのフル生成されたIDを取得するよう

$('#<%= txtSearch.ClientID %>').bind('keyup', function(e) { 

$('#txtSearch').bind('keyup', function(e) { 

を変更する必要があります。

0

これが私の仕事:使用について

$(function(){ 
    $('input').keydown(function(e){ 
     if (e.keyCode == 13) { 
      $(this).parents('form').submit(); 
      return false; 
     } 
    }); 
}); 
0

または何を:

$('input[id=txtSearch]').bind('keyup', function(e) { 

ジャスト回避策。

0

私はそれを与えました。このイベントは、DOMの特定の要素にのみ添付する方法を見つけることはできません。

だから、これは周りに私の仕事です:

$(document).keyup(function(e) { 
    if (e.target.id == "txtSearch") { 
     var characterCode; // literal character code will be stored in this variable 
     if (e && e.which) { //if which property of event object is supported (NN4) 
      e = e; 
      characterCode = e.which; //character code is contained in NN4's which property 
     } 
     else { 
      characterCode = e.keyCode; //character code is contained in IE's keyCode property 
     } 

     if (characterCode == 27) //if generated character code is equal to ascii 27 (if esc key) 
     { 
      //do stuff 
     } 

    } 
}); 
0

デバッガで$('#txtSearch').lengthを確認するか、それが実際に要素を選択していますことを確認するために、アドレスバーに

javascript:alert($('#txtSearch').length); 

を入力のどちらか。そうでない場合は、テキストボックスにCSSクラスを追加し、$('.txtSearch')を使用してみてください。

関連する問題