Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅在动态创建的字段上强制使用数字?_Javascript_Jquery - Fatal编程技术网

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

Javascript 如何仅在动态创建的字段上强制使用数字?,javascript,jquery,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 >=

我试图将动态字段限制为仅限数字,但如果我尝试:

$(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();
    }
});

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

您的方法看起来很好,应该可以正常工作。您在委托事件活页夹中遗漏了
e
(但将其包含在直接事件活页夹中,这就是它起作用的原因)

将第一行更改为:

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

应该解决您的问题

您的方法看起来很好,应该可以正常工作。您在委托事件活页夹中遗漏了
e
(但将其包含在直接事件活页夹中,这就是它起作用的原因)

将第一行更改为:

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

应该解决您的问题

字段的HTML是什么样子的?如果它是一个输入,为什么不将类型设置为number?
$(document).on('keydown','.numberOnly',function(){
看起来不错,所以我猜动态添加的字段没有
class=“numberOnly”
因为我不想让他们输入数字,因为我已经验证过了。基本上,它在req docHi中,我的动态字段是通过jquery添加的,看起来像这样,您没有将事件对象
e
作为参数传递给委托函数“字段”是什么如果它是一个输入,为什么不将类型设置为number?
$(document)。在('keydown','.numberOnly',function(){
看起来不错,所以我猜动态添加的字段没有
class=“numberOnly”
因为我不想让他们输入数字,因为我已经验证过了。基本上,它在req docHi中,我的动态字段是通过jquery添加的,看起来像这样,您没有将事件对象
e
作为参数传递给委托函数