gpt4 book ai didi

javascript - type=”number” 和基于文化的小数点分隔符的 html 标签输入

转载 作者:太空狗 更新时间:2023-10-29 15:45:03 29 4
gpt4 key购买 nike

当我打开具有另一种文化和 UI(即瑞典)的网站时,我需要在英文浏览器中查看正确的小数点分隔符。

如何存档?

  <input type="number" step="0.1"  pattern="[0-9]+([\,][0-9]+)?" min="0" max="5" />

即使我在下一次单击微调器浏览器时应用任何数字,如“0,1”,也会将其重置为“0.2”,其中有一个点而不是逗号。

那么如何保持正确的小数点分隔符呢?

知道如何用 jQuery 修复它吗?

最佳答案

目前,此线程提供的答案导致将 type="number" 更改为 type="text" 的解决方案,这是从用户 Angular 来看退后一步。

我以不同的方式处理了这个问题。

处理来自后端的数据 - 表单准备。

表单通常提供默认值或某些字段的编辑值。这就是为什么如何为表单中的输入提供值很重要。一些框架可以在将它们绑定(bind)到表单之前为您本地化值,这就是为什么来自您的服务器(数据库和编程语言)的值可以用逗号分隔或点分隔。如果您提供 0.01(大多数情况下)作为输入值,您将不会在客户端的任何浏览器中收到错误,但如果您提供 0,01 的值(本地化值) value 在浏览器中不可见,但会作为属性在输入中提供,您将收到控制台错误:it is not proper number value所以首先要做的是用“.”替换“,”。在服务器端呈现表单时,在客户端总是有点分隔值。

如果您此时保留它,您的表单将容易受到浏览器中区域设置的影响。如果您在 Firefox 中使用区域设置 en-US 打印此类表单,您将看到一个以点分隔值的输入,但如果您使用带有区域设置的 Chrome 打印此表单fr-FR 您将看不到任何以逗号分隔的值。如果你想强制执行特定的语言环境,有一个简单的解决方案。有了这个属性:

<html lang="en-US" > 

你会在你的输入类型数字中得到点,这个会给你逗号分隔值:

<html lang="pl-PL" > 

lang 属性也可以在输入本身设置。

前端处理。

在将表单设置为特定语言环境的 Firefox 中,如果您尝试将点或逗号作为分隔符 - 根据您的语言设置,您将收到验证错误。所以请记住,您不能在表单上设置 novalidate 属性,否则提交时发送的值将为空。Chrome 会自动为您将点号转换为逗号或将逗号转换为点号。

这些是我的基本规则。此外,如果您使用一些 JS 方法(例如 parseFloat()),您将在值中获得点,因此如果您处于类似逗号的语言环境中,则必须将点替换为逗号。

关于javascript - type=”number” 和基于文化的小数点分隔符的 html 标签输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26890209/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com