Подсчет символов в IE устанавливает курсор в конец текста - PullRequest
1 голос
/ 27 августа 2010

У меня есть простая текстовая область с идентификатором: "description_short". и пользователь должен иметь возможность вставлять ограниченное количество символов. поэтому я написал эту маленькую функцию:

var max_char = $('#max_chars > span');    
$('#describe_short').bind('keyup', function(){
                var char_count = $(this).val().length;
                $(this).val($(this).val().substr(0, self.short_maximum));
                var chars_left = self.short_maximum - char_count
                if(chars_left < 0) chars_left = 0;
                max_char.text(chars_left);
            });

, где в max_char отображается количество оставшихся символов.

в ff, chrome он работает как шарм, но IE (8) ведет себя по-другому. я не могу установить курсор в положение, отличное от конечного положения всего текста.

что я могу сделать, чтобы избежать этого?

1 Ответ

1 голос
/ 27 августа 2010

Я думаю, проблема в том, что вы устанавливаете значение $ (this) в свое собственное short_maximum для каждого keyup, что может раздражать IE.

Было бы лучше изменить значение val только в том случае, если его длина уже УЖЕ превышена short_maximum.Лично я бы просто добавил:

if ($(this).val().length > self.short_maximum) {
 $(this).val($(this).val().substr(0, self.short_maximum));
}

Кроме того, просто предпочтение, но вы также можете изменить это:

if(chars_left < 0) chars_left = 0;

на это:

chars_left=Math.max(chars_left,0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...