搜狗输入法回车键是可以输入英文的,通过keydown去检测回车键提交,但是有的时候用户只是输出英文字母,但是表单就已经提交了。 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

2016-06-20 17:19:38 2386 1

RT 如何去解决这个问题。

取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:44:24

    如果是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

    0 0
+关注
杨冬芳
IT从业
1
文章
9167
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载