限制AltGr特殊字符

时间:2015-03-26 10:59:35

标签: javascript jquery

我在这里遇到了一些问题。我使用JavaScript库来过滤inputField的输入。它到目前为止工作正常,只输入允许的字符。 但是如果用户按AltGr(右Alt || CTRL + ALT),他仍然可以输入特殊的字符,如@,€,[等等。 有没有办法限制这个?我试过了event.preventDefault();用keydown()做这个的方法;但它没有工作......

这是我用于输入过滤器的小小片段:

$(".field").filter_input({ regex: '[a-zA-Z0-9]' });

这是我使用的jQ-Plugin的链接: http://www.thimbleopensource.com/tutorials-snippets/jquery-plugin-filter-text-input

2 个答案:

答案 0 :(得分:1)

图书馆的第37行(http://www.thimbleopensource.com/download/jquery/jquery.filter_input.js)会返回,如果您按CTRL或ALT,则不会进行任何过滤。

if (event.ctrlKey || event.altKey) return;

您的选择是:

  1. 尝试@Sukanya发布的解决方案(这并不完全符合您的想法,我不会想到)和/或自己编写。请参阅提示:Jquery: filter input on keypress
  2. 选择其他图书馆
  3. 下载图书馆的副本并删除第37行

答案 1 :(得分:0)

试试这个

<input id="txt" type="text" />

<script>
$("input:text").blur(function () {
                checkSpecialChar();
            });
            function checkSpecialChar()
            {
                var checkString = $("#txt").val();                
                if (checkString != "") {
                    if (/[^A-Za-z\d]/.test(checkString)) {
                        alert("Please enter only letter and numeric characters");                        
                        return (false);
                    }
                }
            }
</script>