如何仅在动态创建的字段上强制使用数字?

时间:2016-06-01 08:47:02

标签: javascript jquery

我正在尝试将动态字段限制为仅限数字但是如果我尝试:

$(document).on('keydown', '.numberOnly', function() {
    if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 || (e.keyCode == 65 && (e.ctrlKey ===
            true || e.metaKey === true)) || (e.keyCode >=
            35 && e.keyCode <= 40)) {
        return;
    }
    if ((e.shiftKey || (e.keyCode < 48 || e.keyCode >
            57)) && (e.keyCode < 96 || e.keyCode > 105)) {
        e.preventDefault();
    }
});

但它不起作用。如果我用以下内容替换顶线,它确实有效:

$(".numberOnly").keydown(function(e) {  

但是,这仅适用于静态字段。

1 个答案:

答案 0 :(得分:2)

您的方法看起来很好,应该可以正常工作。您从委派的事件活页夹中遗漏了EventObject e一个小错字(但它包含在直接事件活页夹中,这就是它工作的原因)。

将第一行更改为:

$(document).on('keydown', '.numberOnly', function(e) {

应解决您的问题