我正在构建一个简单的计算器,客户可以在其帐户中添加信用,一切都与下面的错误分开。
错误: 当你输入一个值时一切都很好,如果你点击,然后点击返回编辑并删除你得到NaN的值,我希望它默认为0.00而不是显示NaN
随意看看JS并优化你可以在哪里,因为我只是一起屠杀了它。
HTML:
Credit:
<span id="price01" class="price">£1000.00</span><br/>
Add: <input type="text" id="pricetoadd" placeholder="0.00" name="price02" class="price">
Total: <span class="total"></span>
JS:
$.fn.sumValues = function() {
var sum = 0;
this.each(function() {
if ( $(this).is(':input') ) {
var val = $(this).val();
} else {
var val = $(this).text();
}
sum += parseFloat( ('0' + val).replace(/[^0-9-\.]/g, ''), 10 );
});
return sum;
};
$(document).ready(function() {
$('#pricetoadd').blur(function(){
var num = parseFloat($(this).val());
var cleanNum = num.toFixed(2);
$(this).val(cleanNum);
if(num < 1){
$('#error').text('Please enter only 2 decimal places, we have truncated extra points');
}
});
$('input.price').bind('keyup', function() {
$('span.total').html( $('.price').sumValues().toFixed(2) );
});
});
答案 0 :(得分:4)
只需添加一点健全性检查器:
$('#pricetoadd').blur(function(){
var num = parseFloat($(this).val());
var cleanNum = num.toFixed(2);
cleanNum = isNaN(cleanNum) ? '0.00' : cleanNum;
$(this).val(cleanNum);
if(num < 1){
$('#error').text('Please enter only 2 decimal places, we have truncated extra points');
}
});