目前是 JS 新手,正在创建工资计算器,我有 4 个可以满足的不同条件,比如说 a1 a2 b1 b2,每个条件都有不同的工资率。当选择小时工资率并输入工作时间时,它只需将工作时间乘以工资率,并在底部的文本框中留下感谢信息。我的问题是,该函数没有在应有的条件下停止,它会执行到最后一个 if 语句。假设 a2 是满足的条件,它将执行该条件,但不会停止,并继续执行到最后一个 if 语句。我尝试在每个 if 语句的末尾添加返回代码,但这会阻止完成函数发布感谢消息。任何帮助表示赞赏,谢谢。
var intName;
var intHours = 0,
intQualifyType, intAgeType;
var curWage = 0;
var blnContinue;
var strMessage = "";
var intNumCalc = 0;
var curTotal = 0;
function calcWage() {
intName = (document.getElementById('txtName').value);
intQualifyType = (document.getElementById('optQualifyType').value);
intAgeType = (document.getElementById('optAgeType').value);
intHours = parseInt(document.getElementById('txtHours').value);
if (intQualifyType == "Code1" || intAgeType == "Years2") {
curWage = intHours * 1;
}
alert(curWage);
if (intQualifyType == "Code1" || intAgeType == "Years1") {
curWage = intHours * 2;
}
document.getElementById('txtTotal').value = "$" + curWage.toFixed(2);
curWage = parseFloat(curWage);
intNumCalc++;
blnContinue = confirm("Do you have another quote to process");
if (blnContinue) {
clearall();
} else {
finishUp();
}
} //end of calwage
function clearall() {
document.getElementById('txtName').value = "";
document.getElementById('txtHours').value = "";
document.getElementById('msgInvest').value = "";
document.getElementById('txtTotal').value = "";
document.getElementById('txtName').focus();
} // end of clearall
function finishUp() {
strMessage = "Thank you for using our new Wage Calculator " + intName + "! ";
strMessage = strMessage + "For your hours this week you are currently owed $" + curWage.toFixed(2);
document.getElementById('msgFinish').value = strMessage;
intNumCalc = 0
curTotal = 0;
} //end of finishUp
最佳答案
我相信您的问题就在这里:
if(intQualifyType=="Code1" || intAgeType=="Years1")
和
if(intQualifyType=="Code1" || intAgeType=="Years2")
当您使用“或”逻辑门时,两者都会被运行。所以两个表达式都询问 intQualifyType 是否等于 Code1。 我认为您正在寻找的是一个“与”逻辑门,例如:
if(intQualifyType=="Code1" && intAgeType=="Years2")
// some more stuff here
if(intQualifyType=="Code1" && intAgeType=="Years2")
关于javascript - 当条件满足时如何完成函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669392/