0

我在 html 中有一个输入标签

<input type="number" id="Amount" placeholder="Please enter somthing" />

我正在使用 jQuery 设置此输入的值,例如:

$('#Amount').val("78,000.00");

除非我将输入标签的类型更改为“文本”,否则我无法设置此值。我还应用了模式正则表达式,例如:

<input type="number" id="Amount" placeholder="Please...." pattern="/^[0-9.,]+$/" />

如何解决这个问题呢?

4

2 回答 2

2

您需要使用标准 JavaScript 和 HTML 数字表示法设置值,没有千位分隔符,并且使用句点作为小数分隔符:

$('#Amount').val("78000.00");

或者更好的是,使用纯 JavaScript,因为它非常简单并且避免了“不同版本的 jQuery 在这种情况下如何工作?”的问题:

document.getElementById('Amount').value = '78000.00';

HTML5<input type=number>元素使用标准 JavaScript 和 HTML 数字格式作为内部值。根据浏览器区域设置,只有用于输入值的用户界面可以本地化(恕我直言,这是一个基本的设计缺陷)。因此,当您使用以逗号作为千位分隔符的语言环境时,您可以输入 78,000,但需要浏览器将其转换为 78000。同样,初始值必须以标准(国际化)格式指定,而不是本地化格式)。

pattern不允许在 中使用该属性<input type=number>。原因是浏览器应该知道允许数字的模式并使用它。

于 2013-09-29T16:02:43.620 回答
0

阿卜杜勒,尝试使用

<input type="text" id="Amount" pattern="[0-9.,]+" />

这似乎有效。

于 2013-09-29T14:55:20.010 回答