#reactjs #validation #react-bootstrap
#reactjs #проверка #react-bootstrap
Вопрос:
У меня есть два компонента, каждый из которых отображает форму, отформатированную и проверенную react-bootstrap. Код проверки и макет первой формы работают идеально, но не со второй. Форма не выдает никаких отзывов, независимо от моего случая проверки…
Я делаю что-то не так?
Вот вторая форма :
<Form noValidate validated={this.state.validated} onSubmit={this.handleSubmit}>
<Form.Group controlId="testForm">
<Form.Control placeholder="test" required/>
<Form.Control.Feedback type="invalid">
Please provide a value.
</Form.Control.Feedback>
</Form.Group>
<input className="col mt-4 btn btn-primary" type="submit" value="Envoyer" />
</Form>
Комментарии:
1.
noValidate
атрибут означает, что он не будет проверять вашу форму…2. noValidate предназначен для отмены пользовательского интерфейса проверки браузера по умолчанию. react-bootstrap.github.io/components/forms/?#forms-validation . Я не должен получать помощь? 🙂
Ответ №1:
Проблема заключалась в методе handleSubmit(). Раньше у меня было это :
handleSubmit(event){
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}else{
this.setState({validated:true});
event.preventDefault();
}
}
вместо этого :
handleSubmit(event){
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}else{
...
}
this.setState({validated:true});
event.preventDefault();
}
Мне также пришлось создать один файл для каждой формы…
Надеюсь, это кому-нибудь поможет.