开发者社区> 问答> 正文

搜狗输入法回车键是可以输入英文的,通过keydown去检测回车键提交,但是有的时候用户只是输出英文字母,但是表单就已经提交了。

RT 如何去解决这个问题。

展开
收起
杨冬芳 2016-06-20 17:19:38 2997 0
1 条回答
写回答
取消 提交回答
  • IT从业

    如果是input的话,文本域另当别论。监听input keydown和keyup事件。keydown记录此时的value,keyup判断当前按下的键是否为回车键,如果是,并且value值没有改变,即提交,否则不提交。

        var input = document.querySelector('input'),
            oldValue = '';
    
        input.addEventListener('keydown', function(e){
            oldValue = this.value;
        }, false);
    
        input.addEventListener('keyup', function(e){
            var code = e.keyCode;
            if( code == 13 ){
                if( oldValue === this.value ){
                    console.log('submit');
                }
            }
    
        }, false);

    测试截图
    screenshot

    2019-07-17 19:44:24
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载