小编JDC*_*JDC的帖子

防止对html文本字段的特殊字符输入

我有一个输入文本字段,需要限制哪些字符可以输入.作为防止输入错误的一种形式,我试图甚至不让用户键入不正确的东西.输入可以是[a-zA-Z -._]字符,限制为32个字符.

<input id="aliasEntry" type="text" maxlength="32">
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我已经找到了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);
    }
});
Run Code Online (Sandbox Code Playgroud)

但问题是浏览器总是在处理事件后将键入的字符插入到文本框中,这使得代码无用,因为我想要消除的字符尚未输入.有没有办法简单地阻止浏览器在用户输入后将字符插入文本框?

html javascript validation

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

html ×1

javascript ×1

validation ×1