Я хочу прописать содержимое ввода в моей форме React.
У меня просто есть контролируемый ввод с функцией onChange, вызывающей встроенную функцию toUpperCase. Этот же вход имеет атрибут minlength (минимум 5 символов).
Демонстрация здесь: https://codepen.io/fabienbranchel/pen/OJVmVNo?editors=0010
class NameForm extends React.Component {
constructor(props) {
super(props);
this.state = {value: ''};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value.toUpperCase()});
}
handleSubmit(event) {
alert('A name was submitted: ' + this.state.value);
event.preventDefault();
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input type="text" value={this.state.value} onChange={this.handleChange} minLength={5}/>
</label>
<input type="submit" value="Submit" />
</form>
);
}
}
ReactDOM.render(
<NameForm />,
document.getElementById('root')
);
- Добавить один строчный символ
- Отправить
- Вы можете отправить, это неправильно
- Refre sh page
- Добавить один символ в верхнем регистре
- Вы не можете отправить - это отлично
Кажется, что трансформация ломает мельчайшую длину. Почему?