reactjs - 如何防止用户使用材质ui在TextField中输入字母
问题描述
我有一些 TextField ,用户只能输入正数。现在我有这个onKeyDown:
<TextField
label={distanceError}
error={!!distanceError}
defaultValue={kpoints.distance}
onBlur={handleDistanceChange}
**onKeyDown={(evt) =>
['+', '-'].includes(evt.key) && evt.preventDefault()
}**
InputLabelProps={{
shrink: true,
}}
inputProps={{
min: 0,
id: 'distance-input',
style: {textAlign: 'center'},
}}
variant="outlined"
size="small"
type="number"
aria-label="Distance in angstroms input"
></TextField>
这可以防止任何特殊字符,因为我不希望用户能够输入负数。
我可以添加什么来防止用户输入字母 az?
此外,一旦用户输入不同的数字,我还需要防止它把数字变成字符串。
请帮忙!
解决方案
或者你可以使用这个。由于其他人使用 AirBnB 指南,当仅使用 isNaN 时,他们可能会在 eslint 中出现错误。
<TextField
value={value}
variant="outlined"
onChange={(event) => {
setValue(!Number.isNaN(Number(event.target.value)) ? event.target.value : value);
}}
size="small"
/>
推荐阅读
- c# - SQL Server 上的随机字母数字 ID
- android - 拉刷新错误每次我拉时都会不断添加
- http - 带有 HTTP 响应代码的 libcurl 始终为 0?
- graalvm - 如何使用 Graalvm 对 java 进行沙箱处理
- javascript - 如何使用 DialogFlow 内联编辑器从 Firebase 检索数据
- telegram - 如何在没有电报机器人 api 的情况下获取组的成员数?
- for-loop - 为什么这个for循环永远不会退出?
- java - 对象内存管理 Python 与 Java
- php - 使用来自 onSubmit 的 PHP 函数返回值作为 HTML 表单中的变量
- c# - if-else 组合框