Javascript 按enter键后导航页面

Javascript 按enter键后导航页面,javascript,reactjs,reactstrap,Javascript,Reactjs,Reactstrap,我们遇到了这样一种奇怪的情况,页面刷新时按enter键,但并不总是这样。我们有一个包含文本输入的模态。当您在其中输入某个内容,且焦点仍在输入上时,按enter键,页面将进行导航,即我们有url:domain/#/clientInfo按enter键后,它将变为,domain/input.id=input.value/#/clientInfo。我已经记录了submitMethods和所有onClick方法,但没有一个被调用。我尝试添加: onKeyPress={(e)=>e.preventDefau

我们遇到了这样一种奇怪的情况,页面刷新时按enter键,但并不总是这样。我们有一个包含文本输入的模态。当您在其中输入某个内容,且焦点仍在输入上时,按enter键,页面将进行导航,即我们有url:domain/#/clientInfo按enter键后,它将变为,domain/input.id=input.value/#/clientInfo。我已经记录了submitMethods和所有onClick方法,但没有一个被调用。我尝试添加:

onKeyPress={(e)=>e.preventDefault()

我的问题是如何进一步调试导致此导航事件的原因

编辑:

输入元素位于表单元素内部。
未调用Submit方法,我已将日志添加到Submit方法,并使用开发人员控制台选项保留日志,并且未看到任何日志。但是,如果我通过保存按钮提交表单,则会调用Submit方法,并且它不会导航到神秘页面。还有一件事,当您通过enter键导航到其他页面时,最后会显示,域/input.id=input.value,然后第二次尝试相同的步骤,但在input中输入的值与前一次相同,不会出现导航。

因此我怀疑表单元素应该是这样的(以非常基本的方式)

导出默认类FooForm扩展组件{
建造师(道具){
超级(道具);
this.state={inputValue=this.props.fooValue};
}
handleSubmit=(事件)=>{
event.preventDefault();
此.props.FooAction(事件);
}
onInputChange=(event)=>this.setState(()=>({inputValue:event.target.value}))
render(){
返回(
提交
);
}
}

这样,当您提交表单时,它不会执行任何特定于表单的默认操作,您只需执行您明确要求它执行的操作

它是否在表单元素中?这可能是原因,它在表单元素中。请用更多的代码更新您的问题。很容易猜测您正在使用表单,但没有人应该这样做to guess=)如果其中的输入元素处于焦点位置,Enter通常会提交表单。由于这构成了从当前页面导航,日志记录可能不会及时触发。我已编辑了包含更多详细信息的帖子。由于我不在PC上,目前无法添加代码。
export default class FooForm extends Component {
  constructor(props) {
    super(props);
    this.state = { inputValue = this.props.fooValue };
  }

  handleSubmit = (event) => {
    event.preventDefault();
    this.props.FooAction(event);
  }

  onInputChange = (event) => this.setState(() => ({ inputValue: event.target.value }))
  render() {
    return (
      <form onSubmit={ this.handleSubmit }>
        <input value={ this.state.inputValue } onChange={ this.onInputChange } />
        <button type="submit">Submit</button>
      </form>
    );
  }
}