Я пытаюсь предотвратить ввод ключа enter в текстовое поле, но он не работает.
$('#comment').keyup(function(event) {
if (event.text.charCodeAt() == '10') {
event.preventDefault();
}
});
Я пытаюсь предотвратить ввод ключа enter в текстовое поле, но он не работает.
$('#comment').keyup(function(event) {
if (event.text.charCodeAt() == '10') {
event.preventDefault();
}
});
Я написал небольшую демонстрацию на jsfiddle.net, где вы можете попробовать этот код
У каждого есть правильный ответ:)
$('#comment').keypress(function(event){
if (event.keyCode === 10 || event.keyCode === 13)
event.preventDefault();
});
Вы не можете отменить событие keyup
. Тем не менее вы можете отменить события keydown
и keypress
. В документации обратите внимание, что в разделе "Информация о событии" "Отмена" означает "Нет" для keyup
:
Использование keydown
позволяет отменить гораздо больше клавиш, чем keypress
, но если вы не хотите отменять, пока после того, как ключ не будет поднят, keypress
- это то, что вы хотите. К счастью для вас, клавиша ввода является одним из ключей отмены для события keypress
.
Используйте event.keyCode
в событии keydown
:
$('#comment').keydown(function(event) {
if(event.keyCode == 13) return false;
//carry on...
});
$('#comment').keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
Попробуйте с .keypress
и используйте return false
;
Удачи!
В то время как ответы, предоставленные здесь, не позволят кому-либо вводить возврат каретки, это не помешает кому-то вставить его.
Вам нужно будет выполнить некоторую пост-обработку текста (в javascript или на стороне сервера), чтобы удалить их.
Но вопрос в том, почему? Почему бы просто не использовать <input type="text"></input>
, который позаботится об этом автоматически, так как он представляет собой однострочный элемент ввода?