在 React 中使用最小值和最大值验证创建数字输入
Create numeric input with Min and Max validation in React
要在 React 中创建具有最小和最大验证的数字输入:
- 定义一个
type
设置为 的输入number
。 onChange
在输入字段上设置事件处理程序。- 每次值更改时,将一个从最小值到最大值的数字分配给状态变量。
应用程序.js
import {useState} from 'react'; const App = () => { const min = 1; const max = 100; const [value, setValue] = useState(1); const handleChange = event => { const value = Math.max(min, Math.min(max, Number(event.target.value))); setValue(value); }; console.log(value); console.log(typeof value); return ( <div> <h2>Min 1 / Max 100</h2> <h3>1500 / -50</h3> <input type="number" placeholder="Your fav number" value={value} onChange={handleChange} /> </div> ); }; export default App;
我们使用useState钩子将值保存在组件的状态中。
每次输入类型的值number
发生变化时,我们都使用
Math.max
函数获取从min
up 到 的数字max
。
该
Math.max
函数接受零个或多个数字并返回给定数字中的最大值。我们使用
Math.minmax
函数来获取介于预定义值和用户输入值
之间的数字。
该
Math.min
函数返回零个或多个提供的数字中的最小值。上面的例子只允许1
和之间的数字100
。
如果用户试图输入一个小于 的数字1
,我们只需将预定义min
值设置为状态变量。
另一方面,如果用户尝试输入比 更大的值max
,我们将状态变量设置为预定义的max
。
在所有其他情况下,状态变量设置为用户提供的数字。
我还写了一篇关于
如何创建纯数字输入字段的文章。