I can not figure out why the following code does not work. 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;
});
}
I am trying to assign a keyup function to the inputs that I add dynamically.
Expected output: YAY! inside a popup box
Please help!
Attach an keyup event handler to shipping table, and the event will bubble up from the input[name="rate"]
to shipping table:
$('#shipping').on('keyup', 'input[name="rate"]', function () {
alert('YAY');
return false;
});
DEMO
You need to add delegation to document
because its added to the document
.
Example
$(document).on('keyup', 'input[name="rate"]', function () {
alert('YAY ');
});
Working Demo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With