检查返回键 ( keyCode==13) 的 keyup 事件,然后将 click 事件分派到目标 DOM 元素:
document.getElementById('myInput').addEventListener("keyup", function(ev){
// console.log(ev.keyCode);
if (ev.keyCode==13) document.getElementById('mybtn').dispatchEvent(new Event('click'));
})
<input id="myInput" type="text" name="txt" placeholder="Enter Tag name and click Add "autocomplete="off"/>
<input id='mybtn' class="btn btn-primary" type="button" value="Add" onclick="console.log('clicked, input is: '+document.getElementById('myInput').value)"/>
刚刚意识到,除了我的.dispatchEvent()方法之外,我的方法与@brk 的解决方案相同。而且他的更短!我不知道它click()在 Vanilla JavaScript 中可用。我使用 jquery 已经很长时间了,以至于我不知道所有这些新的 html5/ES6 添加;-)
然而,该.dispatchEvent方法是一种普遍适用的方法。您甚至可以通过执行以下小片段来使用它来伪造在输入字段上按下的回车键:
var e=new Event('keyup'); e.keyCode=13; // generate an "Enterkey pressed" event
document.getElementById('myInput').dispatchEvent(e); // apply it on the input element