2017-09-22 22 views
0

我似乎无法弄清楚这一点.... 哪个事件有意义将一个函数调用绑定到操作e.preventDefault();如果有人在填写输入标签时点击输入?使用react和e.preventDefault()防止表单提交;

目前我得到一个不需要的刷新发生。当我只想在输入键被击中时触发另一个功能。

我该怎么办?

<form onSubmit={this.stopSubmit}> 
         <FormGroup 
          controlId="formBasicText" 
          validationState={getValidationState()} 
         > 
          <ControlLabel>Stuff</ControlLabel> 
          <FormControl 
           type="text" 
           value={this.state.value} 
           placeholder="Enter text" 
           onChange={handleChange} 
           onKeyUp={handleSubmit.bind(this, "test")} 

          /> 
          <FormControl.Feedback/> 
          <HelpBlock>Validation is based on string length.</HelpBlock> 
         </FormGroup> 
        </form> 

回答

2

this.stopSubmit应该返回false防止表单提交

0

这个添加到窗体标签:

<form onSubmit={e => { e.preventDefault(); }}> 
+0

仅限代码解答因为他们没有解释他们如何解决问题中的问题,所以不提供代码解答。考虑更新您的答案,以解释它做了什么以及它如何解决问题,以便它可以帮助其他用户。请回顾[我如何写出一个好的答案](https://stackoverflow.com/help/how-to-answer) – FluffyKitten

0

本次活动的形式提交。你可以在Mozilla上阅读。

真的这取决于你的表单在做什么。通常你会把你的event.preventDefault()函数调用放在你提交表单的任何地方(例如:action参数的值是多少)。例如,如果它是一个AJAX调用,你会希望在功能。

至少,这就是我所做的。以下是我用于表单提交的最新函数的一个示例,该函数使用它。

handleFormSubmit = event => { 
    event.preventDefault(); 
    this.searchMovies(this.state.search); 
};