目前刚接触JS,并创建工资计算器,我有4个不同的条件可以满足,比如a1 a2 b1 b2,每个条件都有不同的工资率。当选择每小时工资率并输入工作小时数时,它只是将工作小时数乘以工资率,并在底部的文本框中留下感谢信息。我的问题是,函数不应该在它应该的条件下停止,它会进入最后一个if语句。假设a2是满足的条件,它将执行该条件,但它不会停止,并继续到最后一个if语句。我尝试在每个if语句的末尾添加一个返回代码,但这会阻止finish函数发布感谢消息。任何帮助,谢谢你。
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
答案 0 :(得分:1)
我相信你的问题在这里:
SELECT TOP 20
total_worker_time / execution_count AS Avg_CPU_Time,
Execution_count,
total_elapsed_time / execution_count AS AVG_Run_Time,
total_elapsed_time,
(SELECT
SUBSTRING(text, statement_start_offset / 2 + 1, statement_end_offset)
FROM sys.dm_exec_sql_text(sql_handle))
AS Query_Text
FROM sys.dm_exec_query_stats
ORDER BY Avg_CPU_Time DESC
和
if(intQualifyType=="Code1" || intAgeType=="Years1")
当你使用"或"时,两者都将被运行。逻辑门。因此两个表达式都要求intQualifyType等于Code1。 我认为你所寻找的是"和"逻辑门之类的东西:
if(intQualifyType=="Code1" || intAgeType=="Years2")
答案 1 :(得分:0)
@Dave Norm有一个观点,如果这是你想要做的功能。
此代码会为 TRUE 接受 TRUE 的 2 可能的 ANSWERS ,因为您正在使用 || < / strong> OR运算符。
if (intQualifyType == "Code1" || intAgeType == "Years2") {
curWage = intHours * 1;
}
alert(curWage);
if (intQualifyType == "Code1" || intAgeType == "Years1") {
curWage = intHours * 2;
}
我也是客人,您需要为您的流程使用&amp;&amp; AND运算符。
您可以合并 2 语句为 1 。像:
if(intQualifyType == "Code1" && intAgeType == "Years2") {
curWage = intHours * 1;
}else if(intQualifyType == "Code1" && intAgeType == "Years1") {
curWage = intHours * 2;
}
alert(curWage);
也许您需要添加:
return false;
如果您想在获得正确的条件后终止该过程。