Utilisation de fonctions Jquery avec plusieurs champs de texte avec le même identifiant

Je cherche de l’aide sur la façon de référencer des champs de texte spécifiques avec jquery générés avec javascript.

Ce que je reçois ne fonctionne que sur la première instance de la référence de champ.

Code HTML:

Record ID Qty Per Box 

Javascript utilisé pour générer plus de lignes comme ci-dessus

   function addRow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var row = table.insertRow(rowCount); var colCount = table.rows[0].cells.length; for(var i=0; i<colCount; i++) { var newcell = row.insertCell(i); newcell.innerHTML = table.rows[0].cells[i].innerHTML; //alert(newcell.childNodes); switch(newcell.childNodes[0].type) { case "text": newcell.childNodes[0].value = ""; break; case "checkbox": newcell.childNodes[0].checked = false; break; } } } function deleteRow(tableID) { try { var table = document.getElementById(tableID); var rowCount = table.rows.length; for(var i=0; i<rowCount; i++) { var row = table.rows[i]; var chkbox = row.cells[0].childNodes[0]; if(null != chkbox && true === chkbox.checked) { if(rowCount <= 1) { alert("Cannot delete all the rows."); break; } table.deleteRow(i); rowCount--; i--; } } }catch(e) { alert(e); } }  

Donc, ce que je finis par obtenir est plusieurs lignes avec le même identifiant / nom. Ce que je veux simplement faire est de valider l’entrée sur keyup. J’ai donc décidé d’utiliser la méthode (this) .val, mais cela ne fonctionne que sur la première ligne.

  $(document).ready(function() { $("#ri1").keyup(function() { $(this).val($(this).val().replace(/[^\d]/g, "")); }); });  

Quelqu’un sait-il une meilleure solution pour valider une entrée lors de la génération de plusieurs lignes de champs de saisie de cette façon?

Js fiddle http://jsfiddle.net/nS2LM/22/

L’utilisation d’un ID plusieurs fois n’est pas recommandée, mais si vous utilisez la dernière version de jQuery, la délégation d’événements est votre réponse:

    

Le code ci-dessus lie keyup aux éléments .do_stuff du corps du corps afin que tous les éléments créés dynamicment avec une classe de .do_stuff soient capturés par l’événement keyup.