Я пытаюсь создать поле только для числового ввода в компонентеact-bootstrap. Я знаю, что есть атрибут type = "number", который мы могли бы использовать, но тип установлен на пароль для маскировки ввода.
Сначала я попробовал, но это не сработало:
handleAcessCodeChange(event) {
isNan(event.target.value) ? this.setState({ [event.target.id] : event.target.value }) : console.log('Non-numeric input');
}
Затем я попробовал длинный путь, который все еще не работал:
if(isNaN(event.target.value)) {
this.setState({ [event.target.id] : event.target.value });
}
else {
event.preventDefault();
console.log('Error');
}
{/* Access code */}
<Form.Group controlId='accessCode'>
<Form.Label>Access Code</Form.Label>
<Form.Control
style={{ width: '50%' }}
type='password'
placeholder='Enter access code'
defaultValue=''
autocomplete='off'
value={this.state.accessCode}
onChange={this.handleAcessCodeChange.bind(this)}
/>
</Form.Group>
Я ожидал, что на странице отобразится ошибка, если будет введен нечисловой ввод, но он все принял. Есть ли проблема с моим кодом или он реализован из компонента начальной загрузки?