0

我正在创建一个动态输入并向其应用一个类,但它不起作用。
我的课:

$(".numeric_input").keypress(function(e) {
    var a = [];
    var k = e.which;
    for (i = 48; i < 58; i++)
       a.push(i);
    if (!(a.indexOf(k)>=0))
       e.preventDefault();
});

我的代码:

var table = document.getElementById('sizeTable');
for(var i=0;i<sizes.length;i++) {
    $("<td></td>").html('<input type=text class=numeric_input name=rows['+i+'].quantity>').appendTo(tr);
    $(tr).appendTo(table);
}

应用于其他元素的同一类工作正常。任何帮助

4

2 回答 2

3

因为您是.numeric_input动态创建的,所以您需要以不同的方式定位事件。而不是.keypress()使用.on()

$(document).on('keypress', '.numeric_input', function (e) {
    var a = [];
    var k = e.which;
    for (i = 48; i < 58; i++)
       a.push(i);
    if (!(a.indexOf(k) >= 0))
       e.preventDefault();
});
于 2013-06-07T11:15:20.550 回答
2

使用事件委托(因为您.numeric_input被动态添加

$(document).on('keypress',".numeric_input",function(e) {
于 2013-06-07T11:15:11.283 回答