React prevent form submission when enter is pressed
I have the following React Search Bar component where the parent container can call using
<SearchBar onInputChange={this.handleInputChange} />   Everytime the user changes the input, the parent container will be notified. This is why my search bar does not need any submit button.
However, I am finding that if I press enter inside my search bar, the whole page refreshes. And I dont want that.
I know if I have a button in the form, I could call event.preventDefault(). But in this case I have no button so I dont know what to do here
class SearchBar extends Component {     constructor(props) {         super(props);         this.state = { value: '' };         this.handleChange = this.handleChange.bind(this)     }      handleChange(e) {         this.setState({ value: e.target.value });         this.props.onInputChange(e.target.value);     }      render() {         return (         <div id="search-bar">             <form>             <FormGroup controlId="formBasicText">                 <FormControl                 type="text"                 onChange={this.handleChange}                 value={this.state.value}                 placeholder="Enter Character Name"                 />                       </FormGroup>             </form>         </div>         );     } }  export default SearchBar 
                The simplest solution to prevent the form submission is to return false on submit event handler defined using the onsubmit property in the HTML <form> element.
The preventDefault() method cancels the event if it is cancelable, meaning that the default action that belongs to the event will not occur. For example, this can be useful when: Clicking on a "Submit" button, prevent it from submitting a form.
You need to create a form handler that would prevent the default form action.
The simplest implementation would be:
<form onSubmit={e => { e.preventDefault(); }}>   But ideally you create a dedicated handler for that:
<form onSubmit={this.submitHandler}>   with the following implementation
submitHandler(e) {     e.preventDefault(); } 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With