Как проверить, добавил ли кто-то 4 или более букв в текст ввода? - PullRequest
0 голосов
/ 11 января 2019

С помощью этого скрипта ниже сделал ajax вызов моего файла veriUSPF.php, в этом файле у меня есть запрос SELECT, чтобы проверить, доступно ли имя пользователя. Этот скрипт ниже onBlur, но я хочу, чтобы он выполнял вызов ajax, только если кто-то добавил 4 или более букв на входе, возможно ли это?

HTML:

<input id="UsName" type="text" minlength="4" maxlength="17" autocomplete="off" onBlur="checkAvailability()" value="<?php echo htmlentities($username, \ENT_QUOTES, 'UTF-8', false); ?>" name="changeUsernamePF">
<span id="user-availability-status"></span>

сценарий:

function checkAvailability() {
    jQuery.ajax({
        url: siteURL + "/veriUSPF.php",
        data: "changeUsernamePF=" + $("#UsName").val(),
        type: "POST",
        success: function(a) {
            $("#user-availability-status").html(a)
        }
    })
}

1 Ответ

0 голосов
/ 11 января 2019

Вы можете использовать input event:

$('#UsName').on('input', function(e) {
    if (this.value.length>=4) {
        console.log('call ajax now');
    }
}).trigger('input');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="UsName" type="text" minlength="4" maxlength="17" autocomplete="off" onBlur="checkAvailability()" value="" name="changeUsernamePF">
<span id="user-availability-status"></span>

Используя встроенное событие, вы можете написать:

function checkAvailability(e, ele) {
  if (ele.value.length>=4) {
      console.log('call ajax now');
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<input id="UsName" type="text" minlength="4" maxlength="17" autocomplete="off" oninput="checkAvailability(event, this)" value="" name="changeUsernamePF">
<span id="user-availability-status"></span>
...