2

我有一个表单,我试图在某些输入字段中自动强制使用小数。基本上我希望用户不用担心格式,而只是让字段自己格式化 onBlur。

以下是我希望实现的一些示例:

1.) 如果用户输入“0.95”,则什么也不做,因为这是我最终要采用的最终格式。

2.) 如果用户输入“.95”,我希望字段 onBlur 更改为上述格式“0.95”。(同样,如果他们输入“.9”等)

我一直在互联网上彻夜寻找解决方案,所以这是我最后的手段!我能得到的任何帮助和反馈将不胜感激!

谢谢!

4

4 回答 4

4

这样的事情会做到这一点:

document.getElementById('amount').onblur = function() {
    if(this.value && !isNaN(this.value)) {        
        this.value = parseFloat(this.value).toFixed(2);
    } else {
        this.value = 0;
    }
};

jsFiddle

于 2012-07-26T17:00:59.147 回答
1

这是简洁明了的:

function blurFormatDecimal (e) {
    var val = isFinite(this.value) ? +this.value : 0;
    this.value = val.toFixed(2);
}
myInput.onblur = blurFormatDecimal;

使用isFinite()而不是!isNaN()因为isNaN("Infinity")返回false,但您当然不想接受"Infinity"作为有效输入。

http://jsfiddle.net/gilly3/NjeQD/

于 2012-07-26T17:20:40.097 回答
0

如果您需要使用 PHP 执行此操作,请尝试: $formattedAmount = sprintf("%05.2f",$amount);

于 2016-10-18T04:01:05.200 回答
-1

这是php解决方案:

$formattedAmount = sprintf("%01.2f",$amount);
于 2012-07-27T02:54:41.127 回答