javascript - 当条件满足时如何完成函数?

标签 javascript function return

目前是 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/

相关文章:

javascript - 如何暂停 JavaScript 代码执行 2 秒

JavaScript 事件监听器 mousemove

c++ - 执行相同函数的不同结果[C++]

python - 如何只返回存在的值?

javascript - JQuery 中未定义的返回值

javascript - node-mysql connection.query() 返回未定义

javascript - Async.js 设计模式

javascript - 幻灯片过渡在第一张幻灯片后停止工作

javascript - 将谷歌脚本值传递给 html

c++ - OpenGL,C++,为什么 glutReshapeFunc 函数给出黑色 opengl 屏幕?