原生js如何模拟按下回车。

比如点击一个按钮时,模拟按下回车,也就是说触发keydown并且keycode=13.
这个怎么实现?

阅读 23.1k
4 个回答
event = document.createEvent("KeyboardEvent");
//初始化事件对象
event.initKeyboardEvent("keydown", true, true, document.defaultView, "a",0, "Shift", 0);}
//触发事件
textbox.dispatchEvent(event);

答案就在你的问题里面,你要出发什么事件,在enter监听事件里面调用该事件即可。比如登录,你有个登录事件,你只要在enter监听事件里面调用登录事件就可以了,至于范围,这个可以自己自定义

最好不要做这种模拟,部分浏览器会屏蔽此操作,比如safari,还是使用主动触发js函数的方法吧

写完发现写反了。。。我写的回车触发点击,你自己改一改就ok
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
</head>

<body>
    <button id="btn" onclick="alert('点击');">回车触发点击</button>
</body>
<script type="text/javascript">

    document.addEventListener("keydown", function() {
        if(event.keyCode == 13) {
            var e=document.createEvent("MouseEvents");
            e.initMouseEvent("click", true, true, document.defaultView, 0, 0, 0, 0, 0,false, false, false, false, 0, null); 
            var btn = document.getElementById("btn"); 
            btn.dispatchEvent(e);
        }
    })
    
</script>

</html>

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题