Событие Key Up, которое выполняется при вводе 5 символов - PullRequest
0 голосов
/ 12 ноября 2010

Итак, у меня есть функция, которая срабатывает, когда пользователь вводит 5 символов в поле ввода.

Однако всякий раз, когда я размещаю дополнительные символы после того, как 5 будет выполнено, оно продолжает запускать событие.

Как мне предотвратить это?

$(function(){
    var $zipEntry = $('#zipEntry').bind('keyup',function(event) { //bind to key up, doesn't require 
    //make sure that there are 5 numbers... or length = 5 since numeric only input
    var $this = $(this); // cache $(this)

        if ($this.val().length == 5){ // use cached 
            console.log("There are 5 characters!!");
            $this.trigger('zipEntered'); 
        }
    });

Ответы [ 3 ]

1 голос
/ 12 ноября 2010

Попробуйте отменить привязку события после того, как вы его прослушали.

if ($this.val().length == 5){
    console.log("There are 5 characters!!");
    $this.trigger('zipEntered');
    $('#zipEntry').unbind('keyup');
}
1 голос
/ 12 ноября 2010

Не может ли проблема быть исправлена ​​в источнике?Поставить максимальную длину в поле ввода?

1 голос
/ 12 ноября 2010

Если я вас правильно понимаю, вам нужно использовать «больше или равно» вместо «равно»

if ($this.val().length >= 5){

Кроме того, почему вы используете $ в именах переменных ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...