将文本字段的输入与数组的元素匹配

Posted

技术标签:

【中文标题】将文本字段的输入与数组的元素匹配【英文标题】:Matching input from a text field against elements of an array 【发布时间】:2015-10-24 10:15:33 【问题描述】:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <title>Data search</title>
   </head>
   <body>
      <input type="text" name="" id="inputData" value="" placeholder="">
      <button type="button" onclick="myFunction()">search</button>
      <p id="text"></p>
      <script type="text/javascript">
         function myFunction()
          var data = [1, 2, 3, 4, 5, "name", "email", "id", "password", "position"];
          var iData = document.getElementById("inputData").value;
         
          for(var i = 0; i <= data.length; i++)
             
              if(iData == data)
         
                  document.getElementById("text").innerHTML = "This data is available in array data";
              else
         
                   document.getElementById("text").innerHTML = "This data is not available in array data";
              
          
         
      </script>
   </body>
</html>

我创建了一个包含一些数据的数组。我从文本字段中获取输入,并根据数组中的数据搜索输入。如果输入的数据与数组中的某个元素匹配,我想显示一个通知,例如:

"此数据在数组数据中可用"

如果输入与数组中的任何元素都不匹配,我希望它输出:

“此数据在数组数据中不可用”。

但它不起作用。我没能找出问题所在,我也不确定这是否是获得预期结果的正确方法。

【问题讨论】:

【参考方案1】:

你的代码有两个错误——第一,当你在数组中找到数据时,你需要立即返回。否则,您的函数将继续循环遍历元素并使用“此数据在数组数据中不可用”再次覆盖正输出。

其次,在您的比较中,您需要使用data[i] 而不是data,因为您想要测试数组中的每个元素,而不是整个数组本身。

下面是一个实际的工作示例:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <title>Data search</title>
   </head>
   <body>
      <input type="text" name="" id="inputData" value="" placeholder="">
      <button type="button" onclick="myFunction()">search</button>
      <p id="text"></p>
      <script type="text/javascript">
         function myFunction()
          var data = [1, 2, 3, 4, 5, "name", "email", "id", "password", "position"];
          var iData = document.getElementById("inputData").value;
         
          for(var i = 0; i <= data.length; i++)
             
              if(iData == data[i])
         
                  document.getElementById("text").innerHTML = "This data is available in array data";
                  return;
              else
         
                   document.getElementById("text").innerHTML = "This data is not available in array data";
              
          
         
      </script>
   </body>
</html>

【讨论】:

以上是关于将文本字段的输入与数组的元素匹配的主要内容,如果未能解决你的问题,请参考以下文章

将字段标签的基线与文本输入中的文本基线对齐

如何在 Mongoose 中找到与数组字段的最后一个元素与给定查询值匹配的所有文档?

在 swift 中使用 tableview 和数组过滤器自动完成文本字段

使输入文本响应式

如何使用文本字段将数字输入数组(swift3)

如何从输入字段搜索文本到文本区域,以及如何使用 Jquery 标记匹配结果?