【发布时间】:2015-08-28 18:03:25
【问题描述】:
我正在使用一个计算器,但遇到了问题。为了防止用户无法将字段留空,如果该字段留空,我将强制为零。没关系,但问题是当字段中的文本被删除以删除零并输入新数字时,它会自动输入零,所以我的新数字如下所示:05
如果数字中有两个以上的位置并且第一个数字为零,我如何运行替换,替换零?这是我用于计算器的代码。
$(function(){
calculate();
$('.input').keypress(function (e) {
//if the letter is not digit then display error and don't type anything
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
return false;
}
});
$('.input').on('keyup',function(){
if($(this).val()==''){
$(this).val('0');
}
calculate();
});
});
function calculate(){
var d6 = parseFloat(($('#d6').val()).replace(/,/g,''));
var d20 = parseFloat(($('#d20').val()).replace(/,/g,''));
var b20 = d6;
var e20 = parseFloat(($('#e20').val()).replace(/,/g,''));
var f20 = d20*e20;
var f22 = b20/f20;
var f23 = (52-f22)*f20;
$('#f20').html(formatCurrency(f20));
$('#f22').html(f22.toFixed(2));
$('#f23').html(formatCurrency(f23));
}
function formatCurrency(x) {
return '$'+x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
}
【问题讨论】:
-
if(str.length > 1 && str[0] == "0") { str=str.substring(1,str.length) }
-
@juvian 我认为第二次检查是不必要的。根据他所说,0 总是在前面。
-
@Onilol 如果您检查代码,他会将 '' 更改为 '0',所以一段时间后 .val() 将是 '12',没有 0
-
OP,您是在使用 html 表单还是...?
标签: javascript jquery