Я использую простой код ниже, чтобы заменить текстовое поле (<input type=text />
) на элемент <textarea>
после того, как пользователь введет определенное количество символов.В приведенном ниже примере это происходит после 10-го символа.Код работает, за исключением того, что в содержимом <textarea>
пропущен 10-й символ, введенный пользователем.Например, если вы наберете «test 1234» в текстовом поле, текстовое поле пропустит «4».Есть идеи?Благодарю.- Джейк
$('.info').keypress(function() {
var count = $(this).val().length;
if (count > 10)
{
var contents = $(this).val();
$(this).after('<textarea></textarea>').next().val(contents).end().remove()
}
})
ОБНОВЛЕНИЕ: Я попробовал предложение, которое многие из вас поделились: использование события keyup.Это работает, но только если вы печатаете медленно.Если вы быстрый типпер, как я подозреваю, большинство людей здесь, 10-й символ по-прежнему опускается при использовании события keyup.