Прикріпити обробники подій до декількох текстових слів (з подібним візерунковим ідентифікатором)?

У мене є декілька текстових скриньок, які генеруються динамічно, виходячи з деяких результатів, отриманих я з іншого джерела. Я хочу додати деякі оброблювачі подій до цих текстових слів, щоб спіймати будь-яке натискання клавіші та переконатися, що введене значення чисельне.

Я створюю ці текстові поля на основі довжини масиву у відповідь 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
додано
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram