Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在按enter键后提交搜索字段_Javascript_Html_Reactjs_Enter_Onkeypress - Fatal编程技术网

Javascript 如何在按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

我写我的应用程序I React.tsx。我打开我的菜单窗口,其中包含许多div元素,有许多输入字段、复选框和select元素。我还有一个提交按钮,当我点击它时,就会出现一个带有用户过滤器的结果列表:检查/输入/选择。我想在按enter键后也显示结果。我加上这个方法:

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键后显示未筛选的列表。是的,这正是我需要的!谢谢。是的,这正是我需要的!非常感谢。