禁用所有按键,但复制粘贴组合

时间:2018-08-16 12:19:27

标签: javascript jquery html

我正在为数字字段编写代码,其中我已禁用除数字键以外的所有键

function doValidation(event) {
  var charCode = event.keyCode;
  if (charCode != 190 && charCode != 40 && charCode != 39 && charCode != 38 && charCode != 37 && charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57) && (charCode < 96 || charCode > 105))
    return false;
}
<input type="text" onkeydown="doValidation(event)">

现在,我想在此功能中启用ctrl + c和ctrl + v。

2 个答案:

答案 0 :(得分:2)

希望这会有所帮助。

$('input[type="number"]').keypress(function(e){
  //Numbers 47 to 57 are the key code of digit 0 to 9.
  if (![48,49,50,51,52,53,54,55,56,57].includes(e.keyCode)){
    e.preventDefault();
  }
});

答案 1 :(得分:1)

您可以按照以下步骤进行操作:)

var is_ctrl_pressed = false;
$('#number_input').on('keydown', function(e) {
    var code = e.which;
    if ((code > 47 && code < 59) || (code > 95 && code < 106) || (is_ctrl_pressed && (code == 67 || code == 86))) {
        return true;
    } else if (code == 17) {
        is_ctrl_pressed = true;
    } else {
        return false;
    }
});
$('#number_input').on('keyup', function(e) {
    if (e.which == 17) {
        is_ctrl_pressed = false;
    }
});