【问题标题】:How to extract special keys in javascript?如何在javascript中提取特殊键?
【发布时间】:2013-03-12 05:28:44
【问题描述】:

我正在调用搜索文本框的.keyup 函数,并且在那个keyup() 中,我正在从数据库中刷新 GRID。

问题:

但是网格正在刷新(也有特殊键)箭头键、数字锁、功能键和所有其他键,这些键的刷新是不必要的。除了退格、回车、制表符、空格、删除。

我想构造一个正则表达式,以便过滤掉所有的控制键。

示例代码:

$('#searchContent').keyup(function (e) {
    var key = e.which;
    if ( /*condition*/ ) {
        return;
    }
    //my code goes here...
}

我做了什么:

彻底搜索网络,我想出了hotkey,但这并没有解决我的目的。那么,有什么聪明的正则表达式吗?

【问题讨论】:

  • 也许您应该使用onchange 事件?
  • @RJo onchange 仅在模糊 afaik 时触发。
  • 这个答案可能会有所帮助:stackoverflow.com/questions/3977642/…
  • @EAGER_STUDENT 需要哪些键来触发网格刷新。
  • 您可以将当前值存储在某处,然后在每次击键时与新值进行比较以查看它是否已更改...

标签: javascript jquery html regex


【解决方案1】:

试试这个技巧:

function checkForChanges(){
   var txt = $('#searchContent');
   if(txt.val() != txt.attr('xvalue') {
      //do referesh grid content here
   }
}

$('#searchContent').keyup(function (e) {
    $(this).attr('xvalue') = this.value;    
    clearTimeout(this.changeTimer);    
    this.changeTimer = setTimeout(checkForChanges, 20);
}

【讨论】:

    【解决方案2】:

    试试这个 HTML,看看哪些代码与哪些键匹配(取自 Mozilla):

    <html>
    <head>
        <title>charCode example</title>
    
        <script type="text/javascript">
    
            function showChar(e)
            {
                alert("Key Pressed: " + String.fromCharCode(e.charCode) + "\n"
                      + "charCode: " + e.charCode);
            }
    
            </script>
        </head>
    
        <body onkeypress="showChar(event);">
            <p>Press any 'character' type key.</p>
        </body>
    </html>
    

    【讨论】:

    • 但当前在此答案中使用的 keypress 事件可能不会触发删除或退格...
    • 如果删除或退格,它将在 chrome 和 id 中失败
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 2022-10-14
    • 2016-12-01
    • 2019-07-02
    • 2017-01-13
    • 2014-07-22
    相关资源
    最近更新 更多