【问题标题】:When inputting the correct input, if statement doesn't work with DOM [closed]输入正确的输入时,if 语句不适用于 DOM [关闭]
【发布时间】:2021-11-03 00:26:27
【问题描述】:

我想知道为什么这不起作用:当我输入“1234”并按下按钮时,没有任何反应。谁能帮我解决这个问题?

<head>
    <title>Your Website!</title>
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
</head>
<body>
    <h1 class="w3-container w3-green w3-center"> | YOUR WEBSITE | </h1>
    <h3 class="w3-aqua w3-spin w3-left">AMAZING</h3>
    <h2 class="w3-green w3-center">Type in "1234"</h2>
    <input id="inputArea"></input>
    <button class="w3-btn w3-red" onclick="pressed()">Try it</button>
    <script>
        function pressed() {
            var i = document.getElementById(inputArea).value;
            if (i = "1234") {
                alert("PASSWORD CORRECT");
            }else {
                alert("PASSWORD INCORRECT");
            }

        }
    </script>
</body>

【问题讨论】:

  • inputArea 似乎是对 HTML ID 的引用。作为一个字符串,它需要像getElementById("inputArea") 这样的引号。此外,i = "1234"assigns 变量,而i == "1234" 测试equality
  • @showdev 成功了!!

标签: javascript html css dom w3.css


【解决方案1】:

您忘记将输入 id 放在 ". 这是工作代码:

  <head>
    <title>Your Website!</title>
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
</head>
<body>
    <h1 class="w3-container w3-green w3-center"> | YOUR WEBSITE | </h1>
    <h3 class="w3-aqua w3-spin w3-left">AMAZING</h3>
    <h2 class="w3-green w3-center">Type in "1234"</h2>
    <input id="inputArea"></input>
    <button class="w3-btn w3-red" onclick="pressed()">Try it</button>
    <script>
        function pressed() {
            var i = document.getElementById("inputArea").value;
            if (i = "1234") {
                alert("PASSWORD CORRECT");
            }else {
                alert("PASSWORD INCORRECT");
            }

        }
    </script>
</body>

【讨论】:

  • 请不要回答解决方案是“修复错字”的问题。这种类型的问题没有长期价值,因为其他有相同问题的人不会通过搜索找到这个问题。 “错字”是标准的关闭投票原因之一。回答此类问题可以阻止 OP 删除它以从 StackOverflow 中删除膨胀。您可以删除此答案以消除阻止此类清理的可能性。
  • 此代码不起作用。我不明白为什么它被接受为答案。