1

入力ボックスを作成し、その入力にイベントキーダウンを追加しようとしています。入力を静的に作成すると、jqueryで見つけることができます。ただし、コードビハインドで作成すると、jqueryで見つけることができません。

これが、入力を動的に作成するc#コードです。

result0 += "<div style='float:left;width:130px'>Telephone: </div><div style='float:left;width:200px'><input id='txt_basic_telno" + i + "' class='blue_input' type='text' value='" + dr["MobilePhone"].ToString() + "' style='width:250px' maxlength='11' /></div><div style='clear:both'></div>";

これが私のjqueryコードで、フォーカスが入力ボックスにあるときにユーザーがキーを押すとトリガーされるはずです。

$("#txt_basic_telno").keydown(function (event) {
        alert('test');
});

どうすればこれを修正できますか?

4

5 に答える 5

1

これを試して

$(document).on('keydown',"#txt_basic_telno",function (event) {
        alert('test');
});

http://api.jquery.com/onを読む

于 2013-03-20T15:41:15.077 に答える
1

あなたはで使用する必要があります

$(document).on('keydown',"[id^=txt_basic_telno]", function (event) {
        alert('test');
});

効率が悪いので、これを付けないようにしてくださいdocument。ドキュメントを最も近い静的コンテナに置き換えます。

これがデモンストレーションするフィドルです

編集

dystroyから盗まれたセレクター.......彼の答えはより良いですが、それが重要であるため、私はドキュメントのコメントを保持したかった

于 2013-03-20T15:41:16.610 に答える
1

コードを示しているように、IDが正確ではなくtxt_basic_telno、で始まる場合txt_basic_telnoは、次のように使用できます。

$(document.body).on('keydown', '[id^=txt_basic_telno]', function(e) {
     alert('click!');
});
于 2013-03-20T15:42:21.100 に答える
1

2つの異なるIDを使用しています:'txt_basic_telno "+ i+"'と'txt_basic_telno'

于 2013-03-20T16:23:02.327 に答える
-1

jQueryは、jQuery関数が呼び出されたときにセレクターに一致する既存のオブジェクトにイベントハンドラーをバインドするため、動的に作成されたコンテンツに適用する場合は、新しい要素の後に毎回jQuery.keydown関数を呼び出す必要があります。作成されます。

于 2013-03-20T15:41:40.280 に答える