我有来自PrimeReact的InputText的输入字段,该字段的内容应该始终是文本,而不是数字.我想禁用输入数字的可能性. 下面是代码示例. 我还try 在type of data为‘number’时进行验证,然后显示注释,但我看到的输入数据始终是字符串

 <FloatingLabel text="Name" name={`luxmeds.${index}.persons.${idx}.name`}>
                          <StyledInputText
                            name={`luxmeds.${index}.persons.${idx}.name`}
                            value={person.name}
                            onChange={handleChange}
                            type="text"
                          />
                        </FloatingLabel>
                        {!values.luxmeds[index].persons[idx].name && (
                          <StyledWarningText>{'You need to provide a name'}</StyledWarningText>
                        )}
                        {typeof values.luxmeds[index].persons[idx].name === 'number' && (
                          <StyledWarningText>{'You need to provide a name'}</StyledWarningText>
                        )}

你能建议一下如何做到这一点吗?

问好

推荐答案

您可以只检测传递给onChange的值是否包含数字,如果包含,则不要设置person.name的状态.

例如,

 const handleChange = (e) => {
      const numberRegex = /[0-9]/;
      if (!numberRegex.test(e.target.value)) {
        // set state
      }
   }

您还可以考虑使用HTML5模式属性:

                          <StyledInputText
                            name={`luxmeds.${index}.persons.${idx}.name`}
                            value={person.name}
                            onChange={handleChange}
                            type="text"
                            pattern="[a-zA-Z]*"
                          />

Javascript相关问答推荐

即使设置了父级的最大高度,固定位置的分区内容也不会滚动?

如果没有尾随斜线,托管在收件箱中的React/Vite将无法工作

我在这个黑暗模式按钮上做错了什么?

通过在页面上滚动来移动滚动条

if/else JavaScript中的条件行为

在Angular中将样式应用于innerHTML

我们如何从一个行动中分派行动

使用Java脚本根据按下的按钮更改S文本

Chart.js 4.4.2,当悬停在一个数据点上时,如何在工具提示中拥有多个数据点/标签?

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

Prisma具有至少一个值的多对多关系

Chart.js-显示值应该在其中的引用区域

SPAN不会在点击时关闭模式,尽管它们可以发送日志(log)等

expo 联系人:如果联系人的状态被拒绝,则请求访问联系人的权限

将基元传递给THEN处理程序

使每个<;li>;元素的 colored颜色 与随机生成的 colored颜色 列表不同(不重复

JAVASCRIPT SWITCH CASE语句:当表达式为';ALL';

在高位图中显示每个y轴系列的多个值

计算对象数组中属性的滚动增量

是否有静态版本的`instanceof`?