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
作为参数传递给委托函数