我有一个输入文本字段,需要限制可以输入哪些字符。作为防止错误输入的一种形式,我什至试图不让用户输入错误的内容。输入可以是 [a-zA-Z-._] 个字符,并且限制为 32 个字符。
<input id="aliasEntry" type="text" maxlength="32">
如您所见,我已经确定了 32 个字符的限制,并且在达到限制后用户将无法再输入任何内容。但是我在防止输入错误字符方面遇到了问题。
我试过使用 jquery 的 .keypress() 和 .keydown() 事件捕捉器来做类似下面的事情:
$("#aliasEntry").keypress(function(e)
{
var code = e.which || e.keyCode;
// 65 - 90 for A-Z and 97 - 122 for a-z 95 for _ 45 for - 46 for .
if (!((code >= 65 && code <= 90) || (code >= 97 && code <= 122) || code == 95 || code == 46 || code == 45))
{
var text = $("#aliasEntry").val();
text = text.substring(0,text.length);
$("#aliasEntry").val(text);
}
});
但问题是浏览器总是在事件处理后将键入的字符插入文本框,这使得代码无用,因为我试图消除的字符尚未输入。有没有办法简单地阻止浏览器在用户键入字符后将字符插入文本框?
最佳答案
您正在使用 jQuery,所以请看:http://api.jquery.com/event.preventDefault/ .
如果字符碰巧无效,只需调用 e.preventDefault()
,这应该会阻止默认浏览器操作的发生,在本例中是插入一个字符。
关于javascript - 防止特殊字符输入到html文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3552301/