我对反应很陌生,所以这可能是一件很容易做到的事情。我目前正在开发一个模态组件(来自 ReactBootstrap),并且我在模态对话框组件中使用 react-bootstrap 输入组件,带有type=email
. 这样,当在<form>
元素内部并提交表单时,将触发验证,如果验证失败,则会在输入组件顶部显示弹出类型消息。但是,我没有在<form>
元素内使用此组件,并且希望在单击按钮时触发它。这是我拥有的代表问题的工作代码:
/** @jsx React.DOM */
var Modal = ReactBootstrap.Modal;
var ModalTrigger = ReactBootstrap.ModalTrigger;
var Button = ReactBootstrap.Button;
var Input = ReactBootstrap.Input;
var TheModal = React.createClass({
handleSubmit: function() {
// I want to trigger the email input validation here
// via this.refs.theInput
},
render: function() {
return (
<Modal {...this.props} title="Modal Title" animation={true} closeButton={false}>
<div className="modal-body">
<Input ref="theInput" type="email" label="Email Address" defaultValue="Enter email" />
</div>
<div className="modal-footer">
<Button bsStyle="primary" onClick={this.handleSubmit}>Send</Button>
<Button bsStyle="danger" onClick={this.props.onRequestHide}>Close</Button>
</div>
</Modal>
);
}
});
var App = React.createClass({
render: function() {
return (
<div>
<ModalTrigger modal={<TheModal />}>
<Button bsStyle="primary" bsSize="large">Trigger Modal</Button>
</ModalTrigger>
</div>
);
}
});
React.render( <App />,
document.getElementById('content')
);