因为我认为人们在我做之前已经遇到了很多时间,并且可能会有一些标准的解决方案.任何人都可以给出任何提示方向,以防止用户在文本框中键入非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(); } }); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。