我有一个表单,我正在尝试在一些输入字段中自动强制使用小数。基本上,我希望用户不用担心格式,只需在Blur上设置字段格式即可。
以下是我希望实现的几个例子:
1.)如果用户输入"0.95",则不会执行任何操作,因为这是我最终要使用的最终格式。
2.)如果用户输入".95",我希望Blur上的字段更改为上面的格式"0.95"。(同样,如果他们输入".9"等)
我整晚都在网上搜寻解决方案,所以这是我的最后手段!我能得到的任何帮助和反馈都将不胜感激!
谢谢!
这样的东西可以做到:
document.getElementById('amount').onblur = function() {
if(this.value && !isNaN(this.value)) {
this.value = parseFloat(this.value).toFixed(2);
} else {
this.value = 0;
}
};
jsFiddle
这很好也很简洁:
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/
如果您需要使用PHP执行此操作,请尝试:$formattedAmount = sprintf("%05.2f",$amount);
以下是php解决方案:
$formattedAmount = sprintf("%01.2f",$amount);