コンテナーの外側をクリックしたときにModal
を開いたままにするためにできることはありますか?
パスワード変更画面があり、Modal
ボタンをクリックしたときのみsubmit
を閉じる必要があります。特定の条件が満たされた場合にのみアクティブになります。
<div>
<Modal show={this.state.show} onHide={this.handleClose}>
<Modal.Header>
<Modal.Title>Change Password</Modal.Title>
</Modal.Header>
<Modal.Body>
<form className="form-horizontal" style={{margin:0}}>
<div className='password-heading'>This is the first time you have logged in.</div>
<div className='password-heading'>Please set a new password for your account.</div>
<br/>
<label className="password">Password
<input type={this.state.type} className="password__input" onChange={this.passwordStrength}/>
<span className="password__show" onClick={this.showHide}>{this.state.type === 'input' ? 'Hide' : 'Show'}</span>
<span className="password__strength" data-score={this.state.score} ><div className="strength_string">{this.state.strength}</div></span>
</label>
<br/>
<label className="password">Confirm Password
<input type={this.state.type} className="password__input" onChange={this.passwordStrength}/>
</label>
</form>
<br/>
</Modal.Body>
<Modal.Footer>
<Button onClick={this.submitPassword} disabled={this.state.isDisabled}>Submit</Button>
</Modal.Footer>
</Modal>
</div>
[〜#〜]更新[〜#〜]
追加からのアパートbackdrop={ 'static' }
おそらく、Escape
キーをクリックしてモーダルを閉じることができます。
これを防ぐには、モーダルウィンドウにもう1つ追加してください:keyboard={ false }
。
これは、モーダルを開いたままにしておくのに十分です。
モーダルの背景を静的に設定します。モーダルコンポーネントにはbackdrop
のプロパティがあり、それをbackdrop="static"
に設定します
<div>
<Modal show={this.state.show} onHide={this.handleClose} backdrop="static">
<Modal.Header>
<Modal.Title>Change Password</Modal.Title>
</Modal.Header>
<Modal.Body>
<form className="form-horizontal" style={{margin:0}}>
<div className='password-heading'>This is the first time you have logged in.</div>
<div className='password-heading'>Please set a new password for your account.</div>
<br/>
<label className="password">Password
<input type={this.state.type} className="password__input" onChange={this.passwordStrength}/>
<span className="password__show" onClick={this.showHide}>{this.state.type === 'input' ? 'Hide' : 'Show'}</span>
<span className="password__strength" data-score={this.state.score}>
<div className="strength_string">{this.state.strength}</div>
</span>
</label>
<br/>
<label className="password">Confirm Password
<input type={this.state.type} className="password__input" onChange={this.passwordStrength}/>
</label>
</form>
<br/>
</Modal.Body>
<Modal.Footer>
<Button onClick={this.submitPassword} disabled={this.state.isDisabled}>Submit</Button>
</Modal.Footer>
</Modal>
</div>
ドキュメントから:
クリックしたときに「onHide」をトリガーしない背景には、「static」を指定します。 react-bootstrap