解决keydown重复触发提交的问题

    xiaoxiao2022-07-12  149

    问题描述:Javascript中keydown会重复触发,导致了重复提交的问题
    解决方案:

    一、使用keyup事件代替

    document.addEventListener('keyup',function(){ //dosomething... });

    该方法在shift+enter等组合键有一定概率不触发的问题,具体看个人操作习惯

    二、使用flag变量控制

    var flag=false; document.addEventListener('keydown',function(){ if(flag){ return; } flag=true; //dosomething... }); document.addEventListener('keyup',function(){ flag=false; });

    该方法在shift+enter等组合键时需特殊处理

    三、使用event.repeat

    document.addEventListener('keydown',function(e){ if(e.repeat){ return ; } //doSomething... });

    该方法会有兼容性的问题,参考:http://help.dottoro.com/ljbupnfj.php,https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat

    最新回复(0)