如何在if语句中为用户输入JavaScript设置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";
}
}

<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>

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

应该是

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

这里有几件事需要注意:

  • 使用===代替==:见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness
  • 使用||(逻辑或)代替|(位或)
  • 插入括号有助于明确操作顺序

paulsm上面的注释也是相当有效的,如果在您的情况下有意义的话,您可以使用不区分大小写的字符串比较而不是两个单独的比较。当然,如果您希望条件对MB3804mb3804成功,但对Mb3804mB3804失败,那么不区分大小写的字符串比较将不合适,但如果所有四种情况都被认为是"良好的";那就很有意义了

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

可以重写为

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

相关内容

  • 没有找到相关文章

最新更新