Javascript 为什么两个数字相乘时会出现NaN错误?
我的getPercentage函数工作得很好,但是我的getPayment函数却不工作,尽管它的编写方式完全相同。当我点击“获取付款”按钮时,它在我的HTML上返回“NaN”Javascript 为什么两个数字相乘时会出现NaN错误?,javascript,html,Javascript,Html,我的getPercentage函数工作得很好,但是我的getPayment函数却不工作,尽管它的编写方式完全相同。当我点击“获取付款”按钮时,它在我的HTML上返回“NaN” var税={ getPercentage:函数(总计、付款){ 风险值百分比=(付款/总额)*100; 回报率; }, getPayment:函数(总计、费率){ 风险值支付=(总额*费率); 退还款项; } }; 变量处理程序={ getPercentage:函数(){ var totalInput=document.
var税={
getPercentage:函数(总计、付款){
风险值百分比=(付款/总额)*100;
回报率;
},
getPayment:函数(总计、费率){
风险值支付=(总额*费率);
退还款项;
}
};
变量处理程序={
getPercentage:函数(){
var totalInput=document.getElementById('totalInput');
var paymentInput=document.getElementById('paymentInput');
var answer=taxes.getPercentage(totalInput.value,paymentInput.value);
getPercentageAnswer.innerHTML=答案;
},
getPayment:函数(){
var totalInputWO=document.getElementById('totalInputWO');
var rateInput=document.getElementById(“rateInput”);
var应答=taxes.getPayment(totalInputWO.value,rateInput.value);
getPaymentAnswer.innerHTML=answer;
}
};代码>
欠款总额:
您的税率(十进制):
获得报酬
您有一个div
和一个input
具有相同id的rateInput
。因此,rateInput.value
试图从div
中获取值,它返回未定义。将div的id
更改为其他内容,以在rateInput
var税={
getPayment:函数(总计、费率){
风险值支付=(总额*费率);
退还款项;
}
};
变量处理程序={
getPayment:函数(){
var totalInputWO=document.getElementById('totalInputWO');
var rateInput=document.getElementById(“rateInput”);
var answer=税收.getPayment(+TotalInputWO.value,+rateInput.value);
getPaymentAnswer.innerHTML=answer;
}
};代码>
欠款总额:
您的税率(十进制):
获得报酬
在进行某些计算之前,您应该在输入中添加一些验证。
验证,如:
检查输入是否为数字,如果不是数字,则在这种情况下向用户显示什么
若输入为空,则用户单击按钮计算结果
您应该首先处理这些情况,然后代码才能更好地工作
@adiga解决了代码中的错误,但我提供了一种验证输入的方法:
var税={
getPayment:函数(总计、费率){
风险值支付=(总额*费率);
退还款项;
}
};
变量isNumber=函数(值){
return/^\d+$/.test(value.trim())
}
变量处理程序={
getPayment:函数(){
var totalInputWO=document.getElementById('totalInputWO');
var rateInput=document.getElementById(“rateInput”);
//验证代码
var totalInputWO_value=totalInputWO.value.trim()
if(isNumber(总输入值)和isNumber(rateInput.value)){
var应答=taxes.getPayment(totalInputWO.value,rateInput.value);
getPaymentAnswer.innerHTML=answer;
}否则{
警报(“输入的数字不是空的,请检查!”);
}
//控制台日志(总输入值的类型);
}
};代码>
欠款总额:
您的税率(十进制):
获得报酬
可能您的值无法转换为数字。这些值已转换为字符串。可能是重复的。谢谢大家!@格雷厄姆你可以点击答案旁边的灰色图标