我在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.,]+$/" />
如何解决这个问题?
答案 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.,]+" />
这似乎有效。