我写了这个应该格式化钱的小片段,但由于某种原因它在这段时间内失败了。它每次都不断添加它们......任何想法为什么并且有更好的方法来做到这一点
$(".dollar").blur(function() {
var curval = $(this).val();
if ($(this).val().indexOf("$") != 0) {
$(this).val("$" + $(this).val());
}
if ($(this).val().indexOf(".") != 0){
$(this).val($(this).val() + ".00");
}
});
答案 0 :(得分:5)
我写了一个不同的美元格式代码段,它将采用任意数字(1,1.6,2.52,8.2472)并自动将其格式化为美元符号($ 1.00,$ 1.60,$ 2.52,$ 8.24):
$('.dollars').blur(function(e){
var curVal = parseFloat($(this).val()),
curInt = parseInt(curVal, 10),
curDec = parseInt(curVal*100, 10) - parseInt(curInt*100, 10);
curDec = (curDec < 10) ? "0" + curDec : curDec;
if (!isNaN(curInt) && !isNaN(curDec)) {
$(this).val("$"+curInt+"."+curDec);
}
});
答案 1 :(得分:3)
答案 2 :(得分:2)
“indexOf”函数将索引返回到字符串中。我认为你应该进行测试,看看结果是否小于零。
if ($(this).val().indexOf("$") < 0) {
$(this).val("$" + $(this).val());
}
if ($(this).val().indexOf(".") < 0){
$(this).val($(this).val() + ".00");
编辑 oops - 我倒退了:-)小于零,不大于或等于。后者是你要做的,以确定字符串中的字符是,但是你的代码需要知道字符串中不是的时间。