如何使用JQuery动态创建输入元素来实现keyup函数?

时间:2013-04-19 03:35:08

标签: javascript jquery

我无法弄清楚为什么以下代码不起作用。 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;
    });
}

我正在尝试将keyup函数分配给我动态添加的输入。

预期输出:YAY!在弹出框内

请帮忙!

2 个答案:

答案 0 :(得分:7)

将一个keyup事件处理程序附加到发货表,该事件将从input[name="rate"]冒出来到发货表:

$('#shipping').on('keyup', 'input[name="rate"]', function () {
    alert('YAY');
    return false;
});

<强> DEMO

答案 1 :(得分:3)

您需要将委派添加到document,因为它已添加到document

示例

$(document).on('keyup', 'input[name="rate"]', function () {
    alert('YAY ');
});

<强> Working Demo