2016-05-15 22 views
10

フォームを送信することはできません、私は次のようreact-bootstrapコンポーネントがあります。が反応ブートストラップ

 <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> 

は私が「送信」ボタンをクリックすると、フォームが送信されたいの。

ただし、ボタンをクリックすると、コントロールがthis.gotEmailメソッドに到達しません。

なぜそうですか?

答えて

19

FormGroupは、送信イベントを提供しません。あなたがform要素でそれをラップし、それにイベントハンドラをアタッチすることができます

<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> 
+0

ちょっと不思議なことに、ロール=「フォーム」の使用は何ですか?私のexamlpeのために、私はちょうどを持っていて、それは – Ycon

+0

を働くので、私が

を使っていると、(https://react-bootstrap.github.io/components.html#forms-horizo​​ntal) onSubmitの小道具がなく、DOMに2つのフォームがあるので、別のフォームでこれをラップする必要がありますか? – migueloop

+1

@migueloopバージョン0.30.2の場合は、 –

5

一つ欠けがありますが、私は思います。

gotEmail(event){ 
    event.preventDefault(); 
    // code you want to do 
} 
1

バージョン0.30.2のとおり、あなたは<Form>でそれをラップすることができます。ユーザーを押して「入力」は、ページがリロードされませんので、もし

gotEmailでは、preventDefaultがあるはずです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> 
関連する問題