如何在javascript中模拟Enter键按钮
我最近为我的web应用程序制作了一个完整的虚拟键盘,我想添加一个按钮来模拟enter键 例如,当用户在输入字段中键入内容并按下虚拟键盘上的Enter键时,我希望输入字段在网站上搜索他们键入的内容 我完成了搜索部分,但我所需要的只是在键盘上添加一个虚拟的回车键 我怎样才能创建一个按钮来模拟实际的回车键按下 更新: 谢谢大家帮助我!但不幸的是,下面的答案都没有解决我的问题:-( 然而,我找到了解决这个问题的方法 我把我的输入字段放在这样的表格中如何在javascript中模拟Enter键按钮,javascript,enter,simulate,virtual-keyboard,Javascript,Enter,Simulate,Virtual Keyboard,我最近为我的web应用程序制作了一个完整的虚拟键盘,我想添加一个按钮来模拟enter键 例如,当用户在输入字段中键入内容并按下虚拟键盘上的Enter键时,我希望输入字段在网站上搜索他们键入的内容 我完成了搜索部分,但我所需要的只是在键盘上添加一个虚拟的回车键 我怎样才能创建一个按钮来模拟实际的回车键按下 更新: 谢谢大家帮助我!但不幸的是,下面的答案都没有解决我的问题:-( 然而,我找到了解决这个问题的方法 我把我的输入字段放在这样的表格中 <form> <input typ
<form> <input type = "text" placeholder = "Search The website"></input></form>
<form> <input type = "text" placeholder = "Search The website"></input>
<button>Search</button>
</form>
<form> <input type = "text" placeholder = "Search The website"></input></form>
<form> <input type = "text" placeholder = "Search The website"></input>
<button>Search</button>
</form>
然后我在表单的输入字段旁边添加了一个按钮,如下所示
<form> <input type = "text" placeholder = "Search The website"></input></form>
<form> <input type = "text" placeholder = "Search The website"></input>
<button>Search</button>
</form>
<form> <input type = "text" placeholder = "Search The website"></input></form>
<form> <input type = "text" placeholder = "Search The website"></input>
<button>Search</button>
</form>
搜寻
这就自动解决了我的问题
毕竟我没有模拟回车键。但是我找到了一个简单的解决方法。我甚至不需要任何JavaScript。所以,是的,谢谢大家尝试帮助我。JS
var searchfield = document.getElementById("txtSearch");
var simulatedEvent = new KeyboardEvent("keypress", { keyCode: 13, which: 13 });
var button = document.querySelector('button');
Rx.Observable.fromEvent(button, 'click').
subscribe(
(value) => {
console.log(searchfield.value);
//callserachfunction(searchfield.value);
//or
searchfield.dispatchEvent(simulatedEvent);
}
);
function callserachfunction(searchtext) {
console.log(searchtext);
//search here
}
searchfield.addEventListener("keypress", function (e) {
if (e.which == 13){
console.log('search here');
// search here
}
});
<script src = "https://unpkg.com/@reactivex/rxjs@5.3.0/dist/global/Rx.js" ></script>
</head>
<body>
<input type="text" name="add activities" id="txtSearch" placeholder="SEARCH ">
<button id="btnVirtualEnter">Virtual Enter</button>
HTML
var searchfield = document.getElementById("txtSearch");
var simulatedEvent = new KeyboardEvent("keypress", { keyCode: 13, which: 13 });
var button = document.querySelector('button');
Rx.Observable.fromEvent(button, 'click').
subscribe(
(value) => {
console.log(searchfield.value);
//callserachfunction(searchfield.value);
//or
searchfield.dispatchEvent(simulatedEvent);
}
);
function callserachfunction(searchtext) {
console.log(searchtext);
//search here
}
searchfield.addEventListener("keypress", function (e) {
if (e.which == 13){
console.log('search here');
// search here
}
});
<script src = "https://unpkg.com/@reactivex/rxjs@5.3.0/dist/global/Rx.js" ></script>
</head>
<body>
<input type="text" name="add activities" id="txtSearch" placeholder="SEARCH ">
<button id="btnVirtualEnter">Virtual Enter</button>
虚拟进入
我希望它有助于创建事件并从按钮的单击处理程序触发事件,如下所示:
function clickHandler () {
var simulatedEvent = new KeyboardEvent("keypress", {keyCode: 13, which: 13});
document.getElementById("yourSearchInput").dispatchEvent(simulatedEvent);
}
谢谢大家帮助我!但不幸的是,下面的答案都没有解决我的问题:-( 然而,我找到了解决这个问题的方法 我把我的输入字段放在这样的表格中
<form> <input type = "text" placeholder = "Search The website"></input></form>
<form> <input type = "text" placeholder = "Search The website"></input>
<button>Search</button>
</form>
<form> <input type = "text" placeholder = "Search The website"></input></form>
<form> <input type = "text" placeholder = "Search The website"></input>
<button>Search</button>
</form>
然后我在表单的输入字段旁边添加了一个按钮,如下所示
<form> <input type = "text" placeholder = "Search The website"></input></form>
<form> <input type = "text" placeholder = "Search The website"></input>
<button>Search</button>
</form>
<form> <input type = "text" placeholder = "Search The website"></input></form>
<form> <input type = "text" placeholder = "Search The website"></input>
<button>Search</button>
</form>
搜寻
这就自动解决了我的问题
毕竟,我没有模拟enter键。但是我发现了这个简单的解决方法。我甚至不需要任何JavaScript。所以,是的,谢谢大家尝试帮助我。可能重复您的意思是您当前有一个事件侦听器,它可以执行
if(event.key==“enter”)doSearch()
?然后执行doSearch()
,无需模拟任何东西。@Kaido再次阅读了他的问题。他想模拟单击enter键,而不是在单击时触发事件。@Kobe再次阅读了我的评论…@Kaido他使用的是虚拟键盘?所以很可能是鼠标单击,而不是键盘单击?这是错误的。OP要求模拟单击enter键,而不是收听实际事件。@debugmode感谢您尝试帮助我。但这不是我想要的。我想要的是在我的页面上有一个按钮,当按下该按钮时,会使输入字段认为按下了物理回车键。您需要读取事件流。RxJS可以帮上忙。是否要我向您发送回答using RXJS?那太简单了。非常感谢你的帮助。我会尝试你的答案,我会让你知道的。谢谢你尝试帮助我。我刚刚尝试了你的代码,但是我得到了以下错误参考错误:e没有定义抱歉,那是一个输入错误。我更改了答案。好的,谢谢。我不再得到错误,但按钮现在没有了它没有模拟回车键:-(你如何调用clickHandler?这是我的HTML: