HTML 数字字段 toLocalString 不起作用
Posted
技术标签:
【中文标题】HTML 数字字段 toLocalString 不起作用【英文标题】:HTML number field toLocalString not working 【发布时间】:2019-01-01 04:45:55 【问题描述】:我有一个 html 数字字段。分配的该字段值引发以下错误
The specified value "101,5" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?
我需要一个值来转换为french
格式(de-DE)。
我的尝试是
var dispersePercentageInput = $('.disperse-percentage');
var percentage = 101.5
dispersePercentageInput.val(Number(percentage).toLocaleString('de-DE'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" name="etude_disbursement_rate" value="100.00" class="disperse-percentage required" step="0.01" data-prefix="-" required="" id="id_etude_disbursement_rate" title="S'il vous plaît remplissez cet champ">
我期望值为101,5
,但它显示The specified value "101,5" is not a valid number.
我的输入字段是
<input type="number" name="etude_disbursement_rate" value="100.00" class="disperse-percentage required" step="0.01" data-prefix="-" required="" id="id_etude_disbursement_rate" title="S'il vous plaît remplissez cet champ">
en-US 格式的用户输入
【问题讨论】:
对我来说工作得很好,你能在 sn-p 中重现吗? 我使用的是jQuery v1.11.2
版本。这会产生错误吗?
不,和jquery版本无关。
您的实际输入 HTML 是什么样的?和马蒙加的一样吗?
我可以在控制台中看到想要的值。但它不会显示在输入字段中。
【参考方案1】:
请使用“autoNumeric.min.js”
<script src="~/Scripts/autoNumeric/autoNumeric.min.js" type="text/javascript"></script>
在 HTML 文件中添加输入标签:
<input type="text" class="form-control" id="numberint" data-a-dec="," data-a-sep="." data-a-sign="">
脚本代码:
<script type="text/text/javascript">
$(function()
$('#numberint').autoNumeric('init');
);
</script>
【讨论】:
【参考方案2】:是的,当然。 input:type=number
不是个好选择,只能接受普通格式,但是你的格式很不常用。
而number
类型还有一些其他的缺陷,比如
-
在不同的浏览器中表现不尽相同
允许多个
.
允许字母e
我建议只使用text
类型,并通过RegExp 或其他方式检查格式
【讨论】:
【参考方案3】:var formatter = new Intl.NumberFormat('de-DE',
minimumFractionDigits: 2
);
console.log("Output: "+formatter.format(sum));
这对我来说很好用。
【讨论】:
以上是关于HTML 数字字段 toLocalString 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
js中toLocalString()toString()和valueOf()方法
JS中toString()和toLocalString()的区别