В этой статье блога мы рассмотрим различные методы создания полей ввода чисел в JSX. Поля ввода чисел обычно используются в веб-формах, чтобы пользователи могли вводить числовые значения. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять реализацию. Давайте погрузимся!
Метод 1: использование элемента <input>с атрибутом type, имеющим значение «число»
<input type="number" />
Метод 2: использование элемента <input>с атрибутом patternдля проверки
<input type="text" pattern="[0-9]*" />
Метод 3. Использование элемента <input>с пользовательской проверкой с использованием JavaScript
const handleInputChange = (event) => {
const value = event.target.value;
if (!isNaN(value)) {
// Proceed with handling the valid numeric input
} else {
// Display an error message for invalid input
}
};
<input type="text" onChange={handleInputChange} />
Метод 4. Использование сторонней библиотеки, например React-Number-Format
import NumberFormat from 'react-number-format';
<NumberFormat format="####" mask="_" />
Метод 5. Использование элемента ввода диапазона
<input type="range" min="0" max="100" />
Метод 6. Использование шагового компонента из библиотеки пользовательского интерфейса, например Material-UI
import { TextField } from '@material-ui/core';
<TextField type="number" InputProps={{ inputProps: { min: 0, max: 100, step: 1 } }} />
Метод 7. Использование пользовательского компонента с логикой проверки и форматирования
class NumberInput extends React.Component {
constructor(props) {
super(props);
this.state = { value: '' };
}
handleChange = (event) => {
const value = event.target.value;
if (value === '' || /^[0-9]+$/.test(value)) {
this.setState({ value });
}
};
render() {
return (
<input type="text" value={this.state.value} onChange={this.handleChange} />
);
}
}
<NumberInput />
Это семь различных методов создания полей ввода чисел в JSX. В зависимости от ваших конкретных требований и библиотек, которые вы используете, вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Включите эти методы в свои проекты, чтобы улучшить взаимодействие с пользователем и повысить удобство использования веб-форм.