我试图让用户只输入数字并将控件复制并粘贴到文本框。我可以限制用户仅输入数字,但复制、粘贴对我不起作用,请帮助我解决此问题。 这是我的脚本:
$(".allow_only_numbers").keydown(function (e) { var ctrlDown = false; var ctrlKey = 17, vKey = 86, cKey = 67; if (e.keyCode === ctrlKey){ ctrlDown = true; } // Allow: backspace, delete, tab, escape, enter and . if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110]) !== -1 || // Allow: Ctrl (e.keyCode === ctrlKey) || // Allow: Ctrl+A (e.keyCode === 65 && e.ctrlKey === true) || // Allow: Ctrl+v (e.keyCode === vKey && ctrlDown) || // Allow: Ctrl+c (e.keyCode === cKey && ctrlDown) || // Allow: home, end, left, right, down, up (e.keyCode >= 35 && e.keyCode <= 40)) { // let it happen, don't do anything return; } // Ensure that it is a number and stop the keypress if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { e.preventDefault(); } });
这是 jsfiddle 链接: https://jsfiddle.net/sureshpattu/stwzhceL/1/
试试event.keyCode
Và event.metaKey
像这样。
$(document).ready(function() { $(".allow_only_numbers").keydown(function(e) { // Allow: backspace, delete, tab, escape, enter and . if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 || // Allow: Ctrl+A,Ctrl+C,Ctrl+V, Command+A ((e.keyCode == 65 || e.keyCode == 86 || e.keyCode == 67) && (e.ctrlKey === true || e.metaKey === true)) || // Allow: home, end, left, right, down, up (e.keyCode >= 35 && e.keyCode <= 40)) { // let it happen, don't do anything return; } // Ensure that it is a number and stop the keypress if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { e.preventDefault(); } }); });
biên tập:
从您的代码中删除以下代码片段。
var ctrlDown = false; var ctrlKey = 17, vKey = 86, cKey = 67; if (e.keyCode === ctrlKey) { ctrlDown = true; }
因为 ctrlDown
在按 C
Và V
进行复制和粘贴时将为 SAI
。因此,您的 ctr+c
Và ctrl+v
不起作用。
Tôi là một lập trình viên xuất sắc, rất giỏi!