javascript - 只是尝试检查该值是否存在于数组中

标签 javascript jquery

我正在尝试用 jQuery 编写一个函数。

var arr1 = ["Jcob", "Pete", "Fin", "John"];
var str = $("#fname").val();
if (jQuery.inArray(str, arr1))
  $("#lname").text("Bob");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="fname" name="fname">
<input type="text" id="lname" name="lname">

请检查我的 fiddle here

它将做什么用户将在第一个输入框中给出值,jQuery 函数将检查该值是否存在于该数组中,它将用给定的文本填充第二个输入框。

最佳答案

三件事:

  1. 您需要向第一个输入添加一个事件监听器,以便在有人输入内容时持续检查
  2. 在 DOM 中选择元素之前,请确保 DOM 已准备就绪。
  3. 这里根本不需要 jQuery。与大多数事情一样,无需 jQuery 即可轻松完成。

const names = [ "Jcob", "Pete", "Fin", "John" ];
document.addEventListener('DOMContentLoaded', function() {
  const fname = document.getElementById('fname');
  const lname = document.getElementById('lname');
  fname.addEventListener('input', function(event) {
    lname.value = names.includes(fname.value) ? 'Bob' : '';
  });
});
<input type="text" id="fname" name="fname">
<input type="text" id="lname" name="lname">

如果您坚持使用 jQuery(我强烈建议您在精通 native DOM API 之前不要这样做):

const names = [ "Jcob", "Pete", "Fin", "John" ];
$(document).ready(function() {
  const $fname = $('#fname');
  const $lname = $('#lname');
  $fname.on('input', function(event) {
    if ($.inArray($fname.val(), names) > -1) {
      $lname.val('Bob');
    } else {
      $lname.val('');
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="fname" name="fname">
<input type="text" id="lname" name="lname">

关于javascript - 只是尝试检查该值是否存在于数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60270171/

相关文章:

javascript - 谁有一个好的 IE JavaScript 调试器可以帮我吗?

Javascript 日期 checkin 和 checkout 控制

jquery - ASP.NET 与 jQuery - POST 与 GET

javascript - 从数组中获取文本

javascript - jQuery 在复杂的 HTML 字符串中评估 JavaScript

javascript - 当按钮单击事件触发时,滚动条移动到顶部。我想在特定位置停止滚动条移动

javascript - jPlayer javascript 事件触发器仅适用于第一首歌曲

javascript - npm 未安装顶级依赖项的依赖项

javascript - 如何使用 d3js 定义具有间隔的比例

javascript - 禁用按钮,直到填写表格(选择没有效果)