加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 防止在文本框中键入非ascii字符

发布时间:2020-12-16 00:16:43 所属栏目:asp.Net 来源:网络整理
导读:因为我认为人们在我做之前已经遇到了很多时间,并且可能会有一些标准的解决方案.任何人都可以给出任何提示方向,以防止用户在文本框中键入非ascii字符. 解决方法 我个人觉得修改标准的交互模式有点烦人,但如果你必须过滤键盘输入,你可以通过截取按键事件并取消
因为我认为人们在我做之前已经遇到了很多时间,并且可能会有一些标准的解决方案.任何人都可以给出任何提示方向,以防止用户在文本框中键入非ascii字符.

解决方法

我个人觉得修改标准的交互模式有点烦人,但如果你必须过滤键盘输入,你可以通过截取按键事件并取消你不想要的事件来做到这一点:
var allowed = /[a-zA-Z0-9]/; // etc.

window.onload = function () {
    var input = document.getElementById("test");

    input.onkeypress = function () {
        // Cross-browser
        var evt = arguments[0] || event;
        var char = String.fromCharCode(evt.which || evt.keyCode);

        // Is the key allowed?
        if (!allowed.test(char)) {
            // Cancel the original event
            evt.cancelBubble = true;
            return false;
        }
    }
};

它使用jQuery更简洁,更漂亮:

var allowed = /[a-zA-Z0-9]/; // etc.

$(function () {
    var input = document.getElementById("test");

    $("#input").keypress(function (e) {
        // Is the key allowed?
        if (!allowed.test(String.fromCharCode(e.keyCode || e.which))) {
            // Cancel the original event
            e.preventDefault();
            e.stopPropagation();
        }
    });
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读