Просто пытаюсь проверить, присутствует ли значение в массиве или нет - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь написать функцию в 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">

Пожалуйста, проверьте мою скрипку здесь

Что это будет делать, пользователь даст значение в первом входе В поле jQuery функция проверит, присутствует ли значение в этом массиве, и заполнит второе поле ввода заданным текстом.

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Попробуйте это:

<body>

    <input type="text" id="fname" name="fname">
    <input type="text" id="lname" name="lname">
    <button onclick="checkValue()">Click</button>

    <script>
        var arr1 = ["Jcob", "Pete", "Fin", "John"];

        function checkValue() {
            var str = $("#fname").val();
            var val = jQuery.inArray(str, arr1);
            if (val === -1) {
                console.log("no value");
            }
            else {
                $("#lname").val("Bob");
            }

        }
    </script>
</body>
1 голос
/ 17 февраля 2020

Три вещи:

  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 (что я настоятельно рекомендую вам не делать, пока вы не разбираетесь в нативном API DOM):

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">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...