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

javascript jquery html keypress forms

83678 просмотра

6 ответа

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

$('#comment').keyup(function(event) {
  if (event.text.charCodeAt() == '10') {
     event.preventDefault();
   }
});
Автор: James T Источник Размещён: 12.11.2019 09:53

Ответы (6)


86 плюса

Решение

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

У всех есть правильный ответ :)

$('#comment').keypress(function (event) {
    if (event.keyCode === 10 || event.keyCode === 13) {
        event.preventDefault();
    }
});
Автор: kajo Размещён: 20.01.2011 11:37

14 плюса

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

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

Автор: gilly3 Размещён: 20.01.2011 11:55

7 плюса

Используйте event.keyCodeв keydownслучае:

$('#comment').keydown(function(event) {
   if(event.keyCode == 13) return false;
   //carry on...
});
Автор: Jacob Relkin Размещён: 20.01.2011 11:25

3 плюса

$('#comment').keypress(function(event) {
    if (event.keyCode == 13) {
        event.preventDefault();
    }
});
Автор: ThiefMaster Размещён: 20.01.2011 11:26

2 плюса

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

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

http://jsfiddle.net/we8Gm/

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

Автор: Jeff B Размещён: 20.01.2011 11:53

1 плюс

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

Удачи!

Автор: Gonzalo Larralde Размещён: 20.01.2011 11:24
Вопросы из категории :
32x32