клавиша возврата не работает для многих текстовых областей - PullRequest
0 голосов
/ 06 июня 2018

У меня есть форма, которую я запретил пользователю использовать клавишу ввода / возврата для отправки формы.

У меня есть две текстовые области в форме, которые я хочу позволить клавише ввода / возврата работать.

Я добавил этот код, чтобы попытаться обойти эту проблему ( из этой темы ):

    $(window).keydown(function(event){
        //if(event.keyCode == 13) {
        if((event.which== 13) && ($(event.target)[0]!=$("textarea")[0])) {
            event.preventDefault();
            return false;
        }
    });

Код в указанной мной цепочке не работаетдля множественных текстовых областей - только для одной текстовой области на форму!

Однако этот код будет работать только для 1-й текстовой области.Клавиша ввода / возврата во 2-й текстовой области не работает.

Я много раз пытался заставить это работать более чем для 1 текстовой области, но все мои попытки потерпели неудачу.

Любые предложения?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Попробуйте это решение.

Он отключает ключ enter для отправки формы и позволяет ключу enter создавать новые строки в всех текстовых сообщениях, как указано вваш пост.

$(document).on("keypress", ":input:not(textarea)", function(event) {
    if (event.keyCode == 13) {
        event.preventDefault();
    }
});
0 голосов
/ 06 июня 2018

Вы можете использовать if только для проверки, не является ли узел, вызвавший событие, textarea.Если это не так, не разрешайте использовать enter/return

$(window).keydown(function(event){
   if((event.which== 13) && event.target.nodeName != 'TEXTAREA') {
        event.preventDefault()
        return false;
   }  
});
...