【发布时间】:2021-10-02 15:43:09
【问题描述】:
我正在实施输入验证以禁止超过两位小数,但是当我尝试更新一个值时,React 认为它是相同的,因此它不会更新状态。
例如,值为 1.00000,这不适用于我的验证,因为 JavaScript 认为 1.0000 等于 1、1.0 或 1.00,所以当我调用将状态从 1.0000 更新为 1.00 时,什么都不会发生。我并不为此责怪 React,因为它可能正在执行 JavaScript 相等性检查并看到它是同一件事,因此没有更新 DOM。
无论如何我可以通过使用功能组件设置值的状态来强制将值从 1.000 更新到 1.00?谢谢
验证不起作用,用户可以添加所有这些尾随 0
验证工作正常,我不能输入另一个数字(除非它是 0)
【问题讨论】:
-
能否包含您的无效验证码?
-
您可以将变量设置为
Math.floor(value * 100)/100,这基本上会去掉 2 之后的任何小数点。 -
输入值应该以字符串形式出现。
"1.0"与"1.000"绝对不同,除非您将字符串转换为数字(但这不是反应)。我们需要查看您的代码。 -
这能回答你的问题吗? Remove leading zeros from input type=number
标签: javascript reactjs