html 我试图构建的页面的javascript中的几个问题,忽略“If”语句和公式不起作用,VSCode没有给出任何错误

ghg1uchk  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(60)

我对javascript还是个新手,你可能已经知道了,我正在尝试创建一个函数,根据下拉菜单中的选择,用1值或等式的结果替换一段文本,我不知道我是不是太密集了,我搞砸了一些小东西,还是遗漏了一些更复杂的东西。
提前感谢您的帮助。

<!DOCTYPE html>
<html>
    <body>
        <label for="gval">G Value:</label>
        <input type="text" id="gval" name="gval">
        <label for="sval">S Value:</label>
        <input type="text" id="sval" name="sval">
        <label for="bval">B Value:</label>
        <input type="text" id="bval" name="bval">
        <label for="dval">D Value:</label>
        <input type="text" id="dval" name="dval">
        <select id="Level">
            <option value="default" selected>1-18</option>
            <option value="1">Level 1</option>
            <option value="2">Level 2</option>
            <option value="3">Level 3</option>
            <option value="4">Level 4</option>
            <option value="5">Level 5</option>
            <option value="6">Level 6</option>
            <option value="7">Level 7</option>
            <option value="8">Level 8</option>
            <option value="9">Level 9</option>
            <option value="10">Level 10</option>
            <option value="11">Level 11</option>
            <option value="12">Level 12</option>
            <option value="13">Level 13</option>
            <option value="14">Level 14</option>
            <option value="15">Level 15</option>
            <option value="16">Level 16</option>
            <option value="17">Level 17</option>
            <option value="18">Level 18</option>
        </select>
        <span Id="HPVAL">640-247</span>
        <script>
        var e = document.getElementById("Level");
        function onChange() {
        var Result = BVALUE+GVALUE*((LVALUE-1)*((0.66+(SVALUE/100-0.05))+((1-(0.66+(SVALUE/100-0.05)))/17)*(LVALUE-1)))
        var LVALUE = e.value;
        var text = e.options[e.selectedIndex].text;
        var HPVALVAR = document.getElementById('HPVAL');
        var SVALUE = document.getElementById('sval').value;
        var GVALUE = document.getElementById('gval').value;
        var BVALUE = document.getElementById('bval').value;
        var DVALUE = document.getElementById('dval').value;
        const span = (HPVALVAR);
        if (LVALUE="default") {
            span.innerHTML = DVALUE;
        }
        else {
        span.innerHTML = Result;
        }
        }
        e.onchange = onChange;
        onChange();
        </script>
    </body>
</html>

它的作用方式:
它会显示默认值,您可以从下拉列表中选择一个选项,如果该选项是默认值,则它会返回到默认文本应该是什么(我不知道如何存储值为以后,所以我只是有它连接到一个文本框,我手动输入信息)如果你选择一个值是'默认情况下,它会根据其他框中的值和当前下拉选项的值运行公式,然后用该公式的结果替换范围文本。

oknrviil

oknrviil1#

应使用==进行值比较,或使用===进行类型和值比较。=是赋值运算符,在if语句中返回true。
您可以在官方文档中阅读更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#comparison_operators

<!DOCTYPE html>
<html>

<body>
  <label for="gValue">G Value:</label>
  <input type="text" id="gValue" name="gValue"><br/>
  <label for="sValue">S Value:</label>
  <input type="text" id="sValue" name="sValue"><br/>
  <label for="bValue">B Value:</label>
  <input type="text" id="bValue" name="bValue"><br/>
  <label for="dValue">D Value:</label>
  <input type="text" id="dValue" name="dValue"><br/>
  <select id="level">
    <option value="default" selected>1-18</option>
    <option value="1">Level 1</option>
    <option value="2">Level 2</option>
    <option value="3">Level 3</option>
    <option value="4">Level 4</option>
    <option value="5">Level 5</option>
    <option value="6">Level 6</option>
    <option value="7">Level 7</option>
    <option value="8">Level 8</option>
    <option value="9">Level 9</option>
    <option value="10">Level 10</option>
    <option value="11">Level 11</option>
    <option value="12">Level 12</option>
    <option value="13">Level 13</option>
    <option value="14">Level 14</option>
    <option value="15">Level 15</option>
    <option value="16">Level 16</option>
    <option value="17">Level 17</option>
    <option value="18">Level 18</option>
  </select>
  <br/>
  <p>RESULT: <b><span id="hpValue">640-247</span></b></p>

  <script>
    var levelElement = document.getElementById("level");
    level.addEventListener('change',
      function(e) {
        var levelValue = levelElement.value;

        var levelText = levelElement.options[levelElement.selectedIndex].text;
        var hpElem = document.getElementById('hpValue');

        var gValue = document.getElementById('gValue').value;
        var sValue = document.getElementById('sValue').value;
        var bValue = document.getElementById('bValue').value;
        var dValue = document.getElementById('dValue').value;
        var result = bValue + gValue * ((levelValue - 1) * ((0.66 + (sValue / 100 - 0.05)) + ((1 - (0.66 + (sValue / 100 - 0.05))) / 17) * (levelValue - 1)))

        levelValue == "default" ? hpElem.textContent = dValue : hpElem.textContent = result;
      })
  </script>
</body>

</html>

相关问题