Javascript 如何在按enter键后提交搜索字段
我写我的应用程序I React.tsx。我打开我的菜单窗口,其中包含许多div元素,有许多输入字段、复选框和select元素。我还有一个提交按钮,当我点击它时,就会出现一个带有用户过滤器的结果列表:检查/输入/选择。我想在按enter键后也显示结果。我加上这个方法:Javascript 如何在按enter键后提交搜索字段,javascript,html,reactjs,enter,onkeypress,Javascript,Html,Reactjs,Enter,Onkeypress,我写我的应用程序I React.tsx。我打开我的菜单窗口,其中包含许多div元素,有许多输入字段、复选框和select元素。我还有一个提交按钮,当我点击它时,就会出现一个带有用户过滤器的结果列表:检查/输入/选择。我想在按enter键后也显示结果。我加上这个方法: private enterPressed(event: any) { const code = event?.keyCode || event?.which; if (code === 13) { this.onCl
private enterPressed(event: any) {
const code = event?.keyCode || event?.which;
if (code === 13) {
this.onClickSearch();
}
}
我也用
onKeyPress={this.enterPressed.bind(this)}到我的输入和所选元素
我有以下问题。当我打开窗口并按enter键时,什么也没发生。当我把注意力集中在任何输入上,然后按enter键时,它就会工作。解决方法是在任何输入字段上设置自动聚焦,但我不想这样做。您知道其他解决方案吗,可能是使用事件监听器或其他让我按enter键并显示结果的解决方案,而无需任何用户过滤器,也无需保持任何字段处于活动状态
提前感谢您的帮助。默认情况下,当您在
中包装输入元素时,您可以在关注表单工作的预期方式字段时按enter键提交
但是,由于您已经提到不希望出现这种行为,因此可以将事件侦听器附加到将侦听全局按键的窗口对象
此事件侦听器仅需要在安装菜单时创建。关闭菜单时,应删除侦听器
class Menu extends Component {
handleKeyDown = (e) => {
if (e.keyCode === 13) {
// enter pressed
}
}
componentDidMount(){
window.addEventListener("keydown", this.handleKeyDown);
}
componentWillUnmount(){
window.removeEventListener("keydown", this.handleKeyDown);
}
//...
}
默认情况下,当您在
中包装输入元素时,您可以在关注表单工作的预期方式字段时按enter键进行提交
但是,由于您已经提到不希望出现这种行为,因此可以将事件侦听器附加到将侦听全局按键的窗口对象
此事件侦听器仅需要在安装菜单时创建。关闭菜单时,应删除侦听器
class Menu extends Component {
handleKeyDown = (e) => {
if (e.keyCode === 13) {
// enter pressed
}
}
componentDidMount(){
window.addEventListener("keydown", this.handleKeyDown);
}
componentWillUnmount(){
window.removeEventListener("keydown", this.handleKeyDown);
}
//...
}
您可以做的一件事是在页面加载时显示页面上的所有结果(componentDidMount),默认情况下,所有结果都应隐藏。用户可以在单击搜索按钮或按enter键后显示未筛选的列表。您可以做的一件事是在页面加载时显示页面上的所有结果(componentDidMount),默认情况下,所有结果都应隐藏。用户可以在单击搜索按钮或按enter键后显示未筛选的列表。是的,这正是我需要的!谢谢。是的,这正是我需要的!非常感谢。