Je ne peux pas comprendre pourquoi le code suivant ne fonctionne pas. JSFIDDLE LINK
$(document).ready(function () { addInput(); }); var limit = 30; function addInput() { var numberOfRows = $("#shipping tr").size(); var id = numberOfRows; if (numberOfRows == limit) { alert("You have reached the limit of adding " + limit + " inputs"); } else { $('#shipping').append('<tr id="rate' + id + '"></tr>'); $('tr#rate' + id).append('<td></td>'); $('tr#rate' + id).append('<td><input type="text" name="rate" /></td>'); } $('input[name=rate]').on('keyup', 'input', function () { alert('YAY'); return false; }); }
J'essaie d'attribuer une fonction de keyup aux entrées que j'ajoute dynamiquement.
Production attendue: YAY! Dans une boîte contextuelle
Aidez-nous!
Joignez un gestionnaire d'événements de clés à la table d'expédition, et l'évènement passe de l' input[name="rate"]
à la table d'expédition:
$('#shipping').on('keyup', 'input[name="rate"]', function () { alert('YAY'); return false; });
DEMO
Vous devez ajouter une délégation au document
car elle est ajoutée au document
.
Exemple
$(document).on('keyup', 'input[name="rate"]', function () { alert('YAY '); });
Working Demo