【问题标题】:HTML number field toLocalString not workingHTML 数字字段 toLocalString 不起作用
【发布时间】: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 是什么样的?和马蒙加的一样吗?
  • 我可以在控制台中看到想要的值。但它不会显示在输入字段中。

标签: javascript jquery


【解决方案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类型还有一些其他的缺陷,比如

    1. 在不同的浏览器中表现不尽相同
    2. 允许多个.
    3. 允许字母e

    我建议只使用text 类型,并通过RegExp 或其他方式检查格式

    【讨论】:

      【解决方案3】:
      var formatter = new Intl.NumberFormat('de-DE', {
          minimumFractionDigits: 2
      });
      console.log("Output: "+formatter.format(sum));
      

      这对我来说很好用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-10
        • 1970-01-01
        • 2016-06-03
        • 1970-01-01
        • 2014-05-01
        • 2015-08-24
        • 2013-05-11
        相关资源
        最近更新 更多