私は反応するのがかなり新しいので、これはかなり簡単なことかもしれません。現在、(ReactBootstrap から) Modal コンポーネントに取り組んでおり、Modal ダイアログ コンポーネント内で react-bootstrap Input コンポーネントを使用してい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')
);