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 に答える