首页 > 解决方案 > 使用 If 语句检查值的有效方法未在 Javascript 或 JQuery 中使用

问题描述

我在我的 HTML 文档中有四个文本框说 textbox1、textbox2、textbox3、textbox4,在按钮上单击 btn1 我想确保在所有四个文本框中输入的所有值都是不同且唯一的。我正在使用 if 条件。

$("#btn1").on("click", function(){

    if($("#textbox1").val() === $("#textbox2").val() || 
       $("#textbox1").val() === $("#textbox3").val() ||
       $("#textbox1").val() === $("#textbox4").val() ||
       $("#textbox2").val() === $("#textbox3").val() || 
       $("#textbox2").val() === $("#textbox4").val() ||
       $("#textbox3").val() === $("#textbox4").val() ) 
    {  alert("Values are not unique please check them."); }

});

有没有比这更短的方法?

标签: javascriptjqueryif-statement

解决方案


你可以用一个数组来做一个集合。该集合删除了欺骗,因此如果长度不匹配,则存在欺骗。

function checkIfArrayIsUnique(myArray) {
  return myArray.length === new Set(myArray).size;
}

$("button").on("click", function () {
  var vals = $(".tb").map( function () { return this.value }).get()
  console.log(checkIfArrayIsUnique(vals))
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<input type="text" class="tb" />
<input type="text" class="tb" />
<input type="text" class="tb" />
<input type="text" class="tb" />

<button type="button">Check</button>

如果您正在寻找没有大小写的唯一文本,您可能需要“规范化”这些值。示例“aaa”与“AAA”....


推荐阅读