【问题标题】:format number to price将数字格式化为价格
【发布时间】:2010-11-28 14:43:28
【问题描述】:

我已经看到了一些这样的 jquery 事情,只是想知道是否有一个简单的数字格式化脚本。

基本上,我们希望做的只是格式化(客户端),仅用于检查目的,即在字段中输入的数字。在页面的其他位置(可能在 div 中)显示他们输入的格式化价格。

可以这么说,字段

input id="price" name="price" size="50" type="text" class="medium" /

他们输入 1234560

我想在页面的其他位置显示: 您输入:价格为 1,234,560.00 美元。这是正确的吗?

这仅用于视觉目的。或者,更改他们键入的值并将其格式化为“实时”可能是一种选择,但是我们要发送到数据库的值是纯数字,即:1234560

【问题讨论】:

标签: javascript jquery


【解决方案1】:

设置这样的功能 Javascript format currency

function CurrencyFormatted(amount)
{
    var i = parseFloat(amount);
    if(isNaN(i)) { i = 0.00; }
    var minus = '';
    if(i < 0) { minus = '-'; }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    if(s.indexOf('.') < 0) { s += '.00'; }
    if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
    s = minus + s;
    return s;
}

然后为jQuery设置一个类似这样的onchange

jQuery(document).ready(function(){

  jQuery('#price').change(function(){

      jQuery('#mydivsomewhere').val(CurrencyChange(jQuery('#price').val));
  });

});

不确定这是否 100% 正确,尚未测试。但只要输入框中的文本发生变化,就应该调用 CurrencyFormat。应该传入 id 为 price 的文本框的 val,并在某处设置一个 id 为 mydiv 的 div 并使用格式化的值。

【讨论】:

  • @ryan,你怎么写得这么快?
  • 感谢 Ryan,我该如何 a) 将其添加到输入字段 b) 回显结果 c) 不影响输入字段的值 bit dense 我知道
  • 我的错,现在看到了示例页面。但是,这需要 onsubmit ,我们可以这样做而不必单击提交按钮。此处示例:willmaster.com/library/demo/commaNcurrency/commaNcurrency.html。还希望结果显示在数字前面有 $,并且在 div 中而不是字段中
  • 哈,我写了很多Javascript。我试图使这个非常易读/简单,因为我认为您不是 JS 向导:] 我认为当您离开该字段时,上面的代码实际上会触发。而不是 .change 您可能想要使用 .keyup ,只要用户在输入字段中点击一个键就会触发
  • 谢谢 ryan,不,我没救了。我不确定如何将结果发送到 div 中。就像是? div id="mydivsomewhere">
    ??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 2022-11-20
  • 2019-08-06
相关资源
最近更新 更多