input value 值警告 The specified value “15,061.400000“ cannot be parsed, or is out of range.
因此浏览器无法解析它,并抛出了警告The specified value "15,061.400000" cannot be parsed, or is out of range.它只接受符合 W3C 规范的“有效浮点数字符串”作为其。状态,用户无法向其中输入非数字内容,所以你也不用担心数据污染的问题。解析为数字,而是会直接将其作为文本显示在输入框中,警告就会消失。,包括你用逗号格式化后的价格字符
问题出在 HTML 元素类型和数据格式的不匹配上。
原因:
1. 一个带千分位分隔符(逗号)的字符串。例如,当值为 15061.4 时,要取6位小数 "15,061.400000"。2. <input> 元素:使用了 type="number"。
3. HTML 的 <input type="number"> 元素有严格的规范。它只接受符合 W3C 规范的“有效浮点数字符串”作为其 value。带逗号(,)的字符串(如 "15,061.400000")不被认为是有效的浮点数,因此浏览器无法解析它,并抛出了警告 The specified value "15,061.400000" cannot be parsed, or is out of range.
如何解决
最简单且最正确的解决办法是:将 input 的类型从 number 改为 text。
type="text" 的输入框可以接受任何字符串作为其 value,包括你用逗号格式化后的价格字符串。由于它已经是 disabled 状态,用户无法向其中输入非数字内容,所以你也不用担心数据污染的问题。
<input
type="text" // 将number 改为 text
class="w-full h-[50px] rounded-[8px] bg-[#18191D] text-[#FFFFFF] text-[14px] pl-[10px]"
:placeholder="$t('t.__77__')"
disabled
:value="ratio"
/>
这样修改后,浏览器将不再尝试把 "15,061.400000" 解析为数字,而是会直接将其作为文本显示在输入框中,警告就会消失。
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)