Можно ли из данного события keydown
сказать, будет ли уменьшаться или увеличиваться длина владельца input[type=text]
или textarea
после его применения?
Справочная информация: есть сайт HTML5 (<!DOCTYPE html>
), который должен поддерживать пользователей IE 8 и 9 в качестве основного потребителя.На некоторых страницах у меня есть <textarea>
элементы с maxlength="100"
атрибутами.IE не распознает атрибут maxlength
и позволяет вводить в textarea
.
более 100 символов. Я не видел прокладки, которая ограничивает длину символа textarea
в IE стакое же поведение клавиатуры, как и у элемента input[type=text]
.
По этой причине я пытаюсь написать один.
Существующие реализации выглядят примерно так:
$('textarea[maxlength]').on('keydown keyup blur', function(e) {
var $this = $(this),
maxlen = $this.attr('maxlength'),
val = $this.val();
if (val.length > maxlen) {
$this.val(val.substr(0, maxlen));
}
});
Проблема с над реализацией заключается в том, что вы можете ввести или вставить 11 символов, и значение не обрезается до максимальной длины до тех пор, пока значение не будет изменено.Я хотел бы предотвратить изменение до изменения значения, чтобы лучше соответствовать поведению input[type=text,maxlength]
.