событие keyup с неправильным вводом val () - PullRequest
2 голосов
/ 03 мая 2011

В сценарии, который захватывает keyup envent, я получаю неправильное значение входного поля.

 $("#country-name").keyup(function () {

    if ($(this).val().length > 1 ) {
        console.log($(this).val());
    }
 });

Во входном тексте, если я ввожу b r затем я выбираю обе буквы и быстро набираю g r Я получил один журнал br, но 2 журнала gr

Как можно избежать обновления $(this).val()слишком быстро?

Спасибо

Ответы [ 2 ]

2 голосов
/ 03 мая 2011

Самый простой способ - ввести задержку для учета того, кто печатает.

var t;
$("#country-name").keyup(function() {
    var value = $(this).val();
    clearTimeout(t);
    t = setTimeout(function() {
      if (value.length > 1 ) {
        console.log(value);
      }
    }, 500);
});

Пример для jsfiddle

0 голосов
/ 03 мая 2011

Сохраните его в локальной переменной, например:

$("#country-name").keyup(function () {
    var value = $(this).val();
    if (value.length > 1 ) {
        console.log(value);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...