【问题标题】:jQuery: how to set fixed decimals for input field valuejQuery:如何为输入字段值设置固定小数
【发布时间】:2014-05-27 11:47:56
【问题描述】:

我有一个基本输入字段,要在其中填写金额。 该字段被格式化为文本,因为它还必须与较旧的浏览器版本一起使用。

有没有办法可以使用 jQuery 和/或 Regex 将固定小数 (2) 设置为该字段中的任何数字?

我尝试了以下方法,但这并没有改变任何东西:

<input type="text" class="span6" id="amount" maxlength="12" name="amount" />

$('#amount').on('blur', function() {
    var amount = $('#amount').val().replace(/^\s+|\s+$/g, '');
    if( ($('#amount').val() != '') && (!amount.match(/^\d+$/) ) {
        $('#amount').val( amount.toFixed(2) );
    }
});

我正在寻找的是一种将两位小数添加到输入值(如果没有小数并且输入是数字)的方法。

示例:

  • 1000 应该变成 1000.00
  • 1000.99 应该保留 1000.99,因为已经有两位小数。

非常感谢您提供的任何帮助,蒂姆。

【问题讨论】:

  • if 语句缺少括号)
  • 谢谢 - 这只是在帖子中遗漏了。

标签: javascript jquery regex numbers format


【解决方案1】:

我已经创建了一个小提琴,请查看Fiddle

在使用toFixed 之前将amount 转换为整数parseInt(amount)

编辑

代码

$('#amount').on('blur', function() {
var amount = $('#amount').val().replace(/^\s+|\s+$/g, '');
if( ($('#amount').val() != '') && (!amount.match(/^$/) )){
    $('#amount').val( parseInt(amount).toFixed(2));
}
 });

【讨论】:

  • 非常感谢!该链接目前对我不起作用。你能把代码贴在这里吗?
  • 谢谢!如果我的输入值已经有小数点,parseInt 不会截断小数点吗?如果已经有小数,那么我需要保留它们。
  • 是的,如果你想保留小数点,它会截断小数点,然后使用parseFloat 而不是parseInt
  • 这行得通。最后一个问题:如果我有文本作为输入,它现在将其更改为 NaN。如果输入是文本,有没有办法让我保持不变,否则做你所拥有的?
  • 我把这个整理好了。现在一切都很完美。再次感谢您的快速帮助!
猜你喜欢
  • 2013-08-25
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多