如何将包含逗号和小数点的数值设置为输入类型编号

时间:2013-09-29 14:39:52

标签: jquery html html5

我在html中有一个输入标签

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

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

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

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

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

如何解决这个问题?

2 个答案:

答案 0 :(得分: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>属性。原因是浏览器应该知道允许数字的模式并使用它。

答案 1 :(得分:0)

Abdul,尝试使用

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

这似乎有效。