首页 > 解决方案 > 如何在用户输入 JavaScript 的 if 语句中包含 3 个条件

问题描述

JavaScript:我想检查用户输入是否满足 if 语句中的 3 个条件。我不知道如何制作&&|处理单个 if 语句。我有|第一个条件之后,但&&没有考虑到,我可以将输入框留空,它仍然会将我重定向到页面。我尝试了多种方法,但我没有让它工作。请帮助并提前感谢您。

JavaScript

    function valForm() {
          var firstVal = document.getElementById("nextId").value;
          var secondVal = document.getElementById("licenseId").value;
          if (
            (firstVal == "MB3804") | (firstVal == "mb3804") &&
            (secondVal.length == 6) | 7
          ) {
            window.location.href = "google.com";
          }
        }
        

HTML

      <input
          type="text"
          placeholder="License Plate"
          id="licensed"
          autocomplete="off"
      />
      <input
          type="text"
          placeholder="Ticket ID"
          id="nextId"
          autocomplete="off"
      />
      <button class="btn btn-primary display-4" type="button" onclick="valForm()">next</button>
        

标签: javascripthtmlcss

解决方案


if (
    (firstVal == "MB3804") | (firstVal == "mb3804") &&
    (secondVal.length == 6) | 7
)

应该是

if (
    (firstVal === "MB3804" || firstVal == "mb3804") &&
    (secondVal.length === 6 || secondVal.length === 7)
)

这里有几件事需要注意:

paulsm 上面的评论也非常有效,如果这对您的情况有意义,您可以使用不区分大小写的字符串比较而不是 2 个单独的比较。当然,如果您希望条件对MB3804and成功但对andmb3804失败,那么不区分大小写的字符串比较将不合适,但如果所有四种情况都被认为是“好”,那么它就很有意义了Mb3804mB3804

if (firstVal === "MB3804" || firstVal === "mb3804") {...}

可以改写为

if (firstVal.toLowerCase() === "mb3804") {...}

推荐阅读