我有一个表单,我试图在某些输入字段中自动强制使用小数。基本上我希望用户不用担心格式,而只是让字段自己格式化 onBlur。
以下是我希望实现的一些示例:
1.) 如果用户输入“0.95”,则什么也不做,因为这是我最终要采用的最终格式。
2.) 如果用户输入“.95”,我希望字段 onBlur 更改为上述格式“0.95”。(同样,如果他们输入“.9”等)
我一直在互联网上彻夜寻找解决方案,所以这是我最后的手段!我能得到的任何帮助和反馈将不胜感激!
谢谢!
我有一个表单,我试图在某些输入字段中自动强制使用小数。基本上我希望用户不用担心格式,而只是让字段自己格式化 onBlur。
以下是我希望实现的一些示例:
1.) 如果用户输入“0.95”,则什么也不做,因为这是我最终要采用的最终格式。
2.) 如果用户输入“.95”,我希望字段 onBlur 更改为上述格式“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;
}
};
这是简洁明了的:
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"
作为有效输入。
如果您需要使用 PHP 执行此操作,请尝试:
$formattedAmount = sprintf("%05.2f",$amount);
这是php解决方案:
$formattedAmount = sprintf("%01.2f",$amount);