为什么我不能复制和粘贴

时间:2019-11-06 21:10:18

标签: javascript html

我已经用js编写了此代码,以验证html输入字段中的文本。效果很好,只是我无法将任何内容复制/粘贴到文本框中。如何在不丢失验证功能的情况下修改它以允许复制/粘贴?还是有更好的方法来验证文本框?

function checkText(e)
{       
    var ok = /[a-z A-Z]/.test(String.fromCharCode(e.charCode));
    if (!ok)
        e.preventDefault();
}      

2 个答案:

答案 0 :(得分:0)

正如评论中提到的那样,粘贴事件没有charcode属性。您可以尝试以下方法处理这两个事件:

function checkText(e)
{       
   var str = String.fromCharCode(e.charCode) || (event.clipboardData || window.clipboardData).getData('text')
   var ok = /[a-z A-Z]/.test(str);
   if (!ok)
     e.preventDefault();
}

因此,您可以同时处理键盘和粘贴事件。粘贴事件只能是一个字符。

答案 1 :(得分:0)

尝试:

function checkInput(elem){
  let newValue = elem.value.split("").filter(chr => /[a-z A-Z]/.test(chr)).join("")
  elem.value = newValue;
}
<input onInput="checkInput(this);">