This question already has answers here:
Prevent JavaScript keydown event from being handled multiple times while held down
                                
                                    (7个答案)
                                
                        
                                3年前关闭。
            
                    
我有一个asp.net表单和一个asp:textbox。当用户按下并按住某个键时,我遇到问题。用户选择文本框,然后按住'9'直到文本框充满9s。

有什么办法可以发现这种情况?
按住键时是否有办法停止重复键?

最佳答案

使用jquery,您可以执行以下操作:

<script type="text/javascript">

    var allowKey = true;

    $(function () {
        $("#one").keydown(function (e) {
            if (!allowKey) {
                e.preventDefault();
            }
            allowKey = false;
        });

        $("#one").keyup(function () {
            allowKey = true;
        });
    });

</script>

<input id="one" />


更新的错误修复:

    var keyCount = 0;
    $(function () {
        $("#one").keypress(function (e) {
            if (keyCount > 1) {
                e.preventDefault();
            }
            keyCount++;
        });

        $("#one").keyup(function () {
            keyCount = 0;
        });
    });

09-28 10:29