{value: 'coconut'}; this.handleSubmit = this.handleSubmit.bind(this); } handleSubmit(event) { alert('Your favorite flavor is: ' + this.state.value); event.preventDefault(); } render() { return ( <form onSubmit={this.handleSubmit}> <label> Pick your favorite flavor: <select name="flavor" value={this.state.value} <option value="grapefruit">Grapefruit<$option> <option value="coconut">Coconut<$option> <$select> <$label> <input type="submit" value="Submit" /" <$form> ); } } Isn't it weird that we're preventing the browser default behavior for years now?