イベントハンドラを複数のテキストボックスに関連付ける(同様のパターンIDで)

別のソースから取得した結果に基づいて動的に生成されるいくつかのテキストボックスがあります。これらのテキストボックスにいくつかのイベントハンドラを追加して、キーを押さえて、入力されたものがすべて数字であることを確認します。

私はこれらのテキストボックスをJSONレスポンス内の配列の長さに基づいて生成します:

for(i=0;i
0

3 答え

あなたはjQueryを使って質問にタグを付けました。なぜあなたはコンテンツを構築するためにライブラリを使用していないのでしょうか?

var content = [];
for (var i = 0; i < data.routesout.length; ++i) {
  content.push($('', { 'for': 'route' + i, text: data.routesout[i].name }));
  content.push($('<input/>', { change: yourEventHandler, type: 'text', name: 'route' + i, id: 'route' + i, value: date.routesout[i].percent, change: yourEventHandler }));
}

このようにすることで、ハンドラ要素を構成するときにハンドラ要素を要素ごとバインドできます。 (私は "変更"を例として使用しましたが、同じ方法で必要なイベントのハンドラをバインドすることができます)。

最後に、作成した要素をすべて追加することもできますし、配列を作成する代わりに追加することもできます。

3
追加された
私はjQuery(そして一般的にはWebプログラミング、正直ならデスクトップ.N​​ET開発者の方が新しい)ので、あなたはそれを行うことができるか分からなかった。私はそれが本当に好きです。ありがとう!
追加された 著者 sxthomson,

開始日 セレクタを使用することができます

$('input[id^="route"]').keyup(function(){...

これらをオンザフライで作成する場合は、 ライブを使用してイベントを添付する必要があります。 em>

$('input[id^="route"]').live('keyup', function(){...
3
追加された

これはどうですか?

for(i=0;i
1
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript