2016-05-15 72 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 prop,並且在我的DOM中有兩種形式? – migueloop

+1

@migueloop從版本0.30.2開始,您可以使用 –

5

有一兩件事失蹤,我想。

gotEmail,應該有一個preventDefault,因此如果用戶按下「Enter」,頁面將不會重新加載:

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

由於0.30.2版本,你可以在一個<Form>把它包,它支持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>