我已经用js编写了此代码,以验证html输入字段中的文本。效果很好,只是我无法将任何内容复制/粘贴到文本框中。如何在不丢失验证功能的情况下修改它以允许复制/粘贴?还是有更好的方法来验证文本框?
function checkText(e)
{
var ok = /[a-z A-Z]/.test(String.fromCharCode(e.charCode));
if (!ok)
e.preventDefault();
}
答案 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);">