【问题标题】:Restrict AltGr Special Charackters限制 AltGr 特殊字符
【发布时间】:2015-03-26 19:37:52
【问题描述】:

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

这是我用于输入过滤器的小 sn-p:

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

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

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    如果您按 CTRL 或 ALT,库 (http://www.thimbleopensource.com/download/jquery/jquery.filter_input.js) 的第 37 行返回并且不执行任何过滤。

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

    您的选择是:

    1. 尝试@Sukanya 发布的解决方案(我认为这并不能完全满足您的需求)和/或编写您自己的解决方案。查看提示:Jquery: filter input on keypress
    2. 选择不同的库
    3. 下载库副本并删除第 37 行

    【讨论】:

    • 删除了第 37 行,现在可以正常使用了。非常感谢!
    【解决方案2】:

    试试这个

    <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>
    

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 2018-10-30
      • 2020-05-30
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 2019-08-18
      • 1970-01-01
      相关资源
      最近更新 更多