Подтвердить что ты не робот

JQuery: запретить ввод ключа

Я пытаюсь предотвратить ввод ключа enter в текстовое поле, но он не работает.

$('#comment').keyup(function(event) {
  if (event.text.charCodeAt() == '10') {
     event.preventDefault();
   }
});
4b9b3361

Ответ 1

Я написал небольшую демонстрацию на jsfiddle.net, где вы можете попробовать этот код

У каждого есть правильный ответ:)

$('#comment').keypress(function(event){

    if (event.keyCode === 10 || event.keyCode === 13) 
        event.preventDefault();

  });

Ответ 2

Вы не можете отменить событие keyup. Тем не менее вы можете отменить события keydown и keypress. В документации обратите внимание, что в разделе "Информация о событии" "Отмена" означает "Нет" для keyup:

Использование keydown позволяет отменить гораздо больше клавиш, чем keypress, но если вы не хотите отменять, пока после того, как ключ не будет поднят, keypress - это то, что вы хотите. К счастью для вас, клавиша ввода является одним из ключей отмены для события keypress.

Ответ 3

Используйте event.keyCode в событии keydown:

$('#comment').keydown(function(event) {
   if(event.keyCode == 13) return false;
   //carry on...
});

Ответ 4

$('#comment').keypress(function(event) {
    if (event.keyCode == 13) {
        event.preventDefault();
    }
});

Ответ 5

Попробуйте с .keypress и используйте return false;

Удачи!

Ответ 6

В то время как ответы, предоставленные здесь, не позволят кому-либо вводить возврат каретки, это не помешает кому-то вставить его.

Вам нужно будет выполнить некоторую пост-обработку текста (в javascript или на стороне сервера), чтобы удалить их.

http://jsfiddle.net/we8Gm/

Но вопрос в том, почему? Почему бы просто не использовать <input type="text"></input>, который позаботится об этом автоматически, так как он представляет собой однострочный элемент ввода?