¿Adjuntar controladores de eventos a múltiples cuadros de texto (con id de patrón similar)?

Tengo varios cuadros de texto que se generan dinámicamente en función de algunos resultados que obtengo de otra fuente. Quiero agregar algunos controladores de eventos a estos cuadros de texto para capturar cualquier pulsación de tecla y asegurarme de que todo lo ingresado sea numérico.

Genero estos cuadros de texto basados ​​en la longitud de una matriz dentro de una respuesta JSON, así:

for(i=0;i
0

3 Respuestas

Has etiquetado la pregunta con jQuery, así que me pregunto por qué no estás utilizando la biblioteca para construir tu contenido:

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 }));
}

Al hacerlo de esta manera, puede enlazar el elemento de controlador por elemento a medida que los construye. (Utilicé "cambio" como ejemplo, pero podría vincular a los manejadores para cualquier evento que desee de la misma manera).

Al final, puede agregar todos los elementos creados como desee, o puede agregarlos a medida que avanza en lugar de crear una matriz.

3
agregado
Soy bastante nuevo en jQuery (y en la programación web en general, más de un desarrollador de .NET de escritorio, si soy sincero), así que no sabía que podrías hacer eso. Me gusta mucho, sin embargo, mucho más ordenado. ¡Gracias por eso!
agregado el autor sxthomson, fuente

Puede usar el comienza con

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

Tenga en cuenta que si está creando estos sobre la marcha, es posible que deba adjuntar el evento utilizando live :

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

Que hay de esto

for(i=0;i
1
agregado
JavaScript - Comunidad española
JavaScript - Comunidad española
4 de los participantes

En este grupo hablamos de JavaScript. Partner: es.switch-case.com