开发者社区 问答 正文

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

RT 如何去解决这个问题。

展开
收起
杨冬芳 2016-06-20 17:19:38 3119 分享 版权
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
    赞同 展开评论
问答地址: