附加时输入损失jquery keybind

时间:2015-01-19 14:23:14

标签: jquery

我有一个问题,就是我有一个类来验证输入只允许数字:

$(function() {
    $( '.validate_numbers' ).bind('keypress', function (e) {
        //console.log(e.which);
        return (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) ? false : true;
    });
});

但是当我追加另一个输入时:

$('#persons').append('<input type="text" class="validate_numbers">');

使用相同的类,它不会验证输入并允许您键入的任何字符。

如何调用jquery将keybind应用于我追加的输入?

1 个答案:

答案 0 :(得分:2)

使用event delegation

  

事件委托允许我们将单个事件侦听器附加到父元素,该元素将为匹配选择器的所有后代触发,无论这些后代现在是存在还是将来添加。

$( '#persons' ).on('keypress','.validate_numbers', function (e) {
    //console.log(e.which);
    return (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) ? false : true;
});

<强> Working Demo