J'ai le composant react-bootstrap
suivant:
<FormGroup onSubmit={this.gotEmail} role="form">
<FormControl type="text" className="form-control"/>
<Button className="btn btn-primary btn-large centerButton" type="submit">Send</Button>
</FormGroup>
J'aimerais que le formulaire soit soumis lorsque je clique sur le bouton "Envoyer".
Cependant, si je clique sur le bouton, le contrôle n'atteint pas la méthode this.gotEmail
.
Pourquoi est-ce le cas?
FormGroup
ne fournit pas sur l'événement submit. Vous pouvez l'envelopper avec l'élément form
et y attacher un gestionnaire d'événements:
<form onSubmit={this.gotEmail}>
<FormGroup role="form">
<FormControl type="text" className="form-control"/>
<Button className="btn btn-primary btn-large centerButton" type="submit">Send</Button>
</FormGroup>
</form>
Je pense qu'il manque une chose.
Dans gotEmail
, il devrait y avoir une preventDefault
, donc si l'utilisateur appuie sur 'entrée', la page ne rechargera pas
gotEmail(event){
event.preventDefault();
// code you want to do
}
A partir de la version 0.30.2, vous pouvez l'envelopper dans un <Form>
, qui supporte la propriété onSubmit
<Form onSubmit={this.gotEmail}>
<FormGroup role="form">
<FormControl type="text" className="form-control"/>
<Button className="btn btn-primary btn-large centerButton"
type="submit">Send</Button>
</FormGroup>
</Form>
J'ai trouvé le succès avec raectstrap en utilisant:
<Button onClick={this.onSubmit}>Login</Button>