В нижеприведенном фрагменте кода я пытаюсь запретить пользователю вводить новые строки в <textarea>
с помощью preventDefault()
. Вместо ввода новых строк я хочу, чтобы клавиша ввода вызывала событие размытия. Однако приведенный ниже код обходит событие изменения после того, как пользователь изменил текст в пределах <textarea>
, а затем нажал Enter. Как я могу гарантировать, что событие изменения всегда срабатывает при изменении значения текста?preventDefault() для события изменения отмены нажатия клавиши
$('textarea')
.keypress(function (event) {
if (event.which == '13') {//13 = Enter
event.preventDefault();
$(this).blur();
}
})
.change(function() {// THIS DOES NOT FIRE IF USER PRESSES ENTER
alert('change event');
})
.blur(function() {
console.log('blur event');
});//end: blur()
_Я пытаюсь помешать пользователю вводить новые строки в textarea_ Mmmmm ... кажется, что вам нужен текстовый ввод. – elclanrs
Это был бы хороший вариант, но бывают случаи, когда пользователю нужно будет вводить много текста - больше, чем будет вписываться в одну строку. – jake
Запустите событие изменения вручную '$ ('textarea'). Change();' или '$ (this) .change();', когда вы предотвращаете поведение по умолчанию. –