Прыкласці апрацоўшчык падзей для некалькіх тэкставых палёў (з падобнай узорны 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 (і вэб-праграмавання ў цэлым, больш распрацоўніка настольных .NET, калі я сумленны), таму я не ведаю, што вы маглі б зрабіць гэта. Мне вельмі падабаецца, хоць, шмат акуратней. Дзякуй за гэта!
дададзена аўтар sxthomson, крыніца

Вы можаце выкарыстоўваць пачынаецца з селектар

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

Звярніце ўвагу, што калі вы ствараеце на ляту, магчыма, спатрэбіцца прымацаваць падзея, выкарыстоўваючы жыць </эм> :

$('input[id^="route"]').live('keyup', function(){...
3
дададзена

Што пра гэта?

for(i=0;i
1
дададзена