2016-05-15 52 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>