首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InnerHTML在函数中使用时不更新,但在函数外部更新

InnerHTML在函数中使用时不更新,但在函数外部更新
EN

Stack Overflow用户
提问于 2021-11-23 03:49:21
回答 1查看 34关注 0票数 0

我试图弄清楚为什么下面的if else语句在函数外部使用时会更新innerHTML,但是当它在函数内部时,innerHTML不会更新。我确定这是我的参数的一个问题,但我只是不确定我在参数中遗漏了什么。我是编程新手,所以我确信这是一些基本的东西,但我绞尽脑汁试图弄清楚,但似乎什么都不起作用。在我的文件早期,我声明了pilot、copilot、fuel和cargo;我没有将它们包括在这个代码片段中。

代码语言:javascript
复制
function formSubmission(document, list, pilot, copilot, fuelLevel, cargoLevel) {
  form.addEventListener("submit", function(event) {
    if (
      pilot.value === "" ||
      copilot.value === "" ||
      fuel.value === "" ||
      cargo.value === ""
    ) {
      alert("Please enter all information");
      event.preventDefault();
    } else if (isNaN(pilot.value) === false || isNaN(copilot.value) === false) {
      alert(
        "Please enter valid name for Pilot Name or Co-pilot Name (or both)"
      );
      event.preventDefault();
    } else if (isNaN(fuel.value) === true || isNaN(cargo.value) === true) {
      alert("Please enter valid number for Fuel Level or Cargo Mass (or both)");
      event.preventDefault();
    } else {
      document.getElementById(
        "pilotStatus"
      ).innerHTML = `Pilot ${pilot.value} is ready for launch`;
      document.getElementById(
        "copilotStatus"
      ).innerHTML = `Co-Pilot ${copilot.value} is ready for launch`;
      if (fuelLevelInput.value <= 10000) {
        document.getElementById("faultyItems").style.visibility = "visible";
        document.getElementById("launchStatus").innerHTML =
          "Shuttle Not Ready for Launch";
        document.getElementById("launchStatus").style.color = "red";
        document.getElementById("fuelStatus").innerHTML =
          "Fuel level too low for launch";
      } else {
        document.getElementById("fuelStatus").innerHTML =
          "Fuel level high enough for launch";
      }
      if (cargoMassInput.value >= 10000) {
        document.getElementById("faultyItems").style.visibility = "visible";
        document.getElementById("launchStatus").innerHTML =
          "Shuttle Not Ready for Launch";
        document.getElementById("launchStatus").style.color = "red";
        document.getElementById("cargoStatus").innerHTML =
          "Cargo mass too high for launch";
      } else {
        document.getElementById("cargoStatus").innerHTML =
          "Cargo mass low enough for launch";
      }
      if (cargoMassInput.value <= 10000 && fuelLevelInput.value >= 10000) {
        document.getElementById("launchStatus").innerHTML =
          "Shuttle Ready for Launch";
        document.getElementById("launchStatus").style.color = "green";
        document.getElementById("cargoStatus").innerHTML =
          "Cargo mass low enough for launch";
        document.getElementById("faultyItems").style.visibility = "hidden";
      }
      event.preventDefault();
    }
  });
}

formSubmission(
  document.form,
  pilot.value,
  copilot.value,
  fuel.value,
  cargo.value
);

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2021-11-24 02:36:05

几个小时后,我想通了。当我尝试调用函数时,我终于意识到我传递了太多的参数。我在想,我必须单独推送文档、pilot等参数,但我真正需要使用的只是文档。

答案:

代码语言:javascript
复制
formSubmission(document);

感谢deckpk和epascarello的帮助。我弄明白的可能就是你所说的,但是我太新手了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70075169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档