Отключить ввод

У меня есть форма с текстовым полем внутри, и я пытаюсь отключить поведение по умолчанию, когда браузер отправляет всю форму, если пользователь нажимает Enter, когда текстовое поле выбрано.

$('#recaptcha_response_field').keydown(function(event) { if (event.keyCode == 13) {
     event.preventDefault();
     event.stopPropagation();
     event.stopImmediatePropagation();
     alert("You Press ENTER key");
     return false;
   } 
});

В настоящее время я получаю "Вы нажимаете клавишу ENTER", и поведение по умолчанию не переопределяется.

Ответ 1

Попробуйте следующее:

$(document).on("keypress", 'form', function (e) {
    var code = e.keyCode || e.which;
    if (code == 13) {
        e.preventDefault();
        return false;
    }
});

Это предотвратит отправку формы на keypress

ДЕМО ЗДЕСЬ

Ответ 2

Я нашел это, и он работает для меня.

<input type="text" name="somename" id="someid" value="" onkeypress="return event.keyCode!=13">

Ответ 3

Чтобы предотвратить script от блокировки клавиши ввода других элементов, например, на текстовом поле. Измените цель с "form" на "input".

$(document).on("keypress", "input", function (e) {
    var code = e.keyCode || e.which;
    if (code == 13) {
        e.preventDefault();
        return false;
    }
});

Ответ 4

Если ни одно из вышеперечисленных решений не работает для вас, и вы все равно используете javascript, почему бы вам не использовать тип кнопки 'button' <input type='button'> и отправить его с помощью javascript

$('#form_id').submit(); 

Ответ 5

U может использовать этот script для предотвращения ввода целиком из.

<script type="text/javascript">
        $(document).on("keypress", 'form', function (e) {
            if (e.target.className.indexOf("allowEnter") == -1) {
                var code = e.keyCode || e.which;
                if (code == 13) {
                    e.preventDefault();
                    return false;
                }
            }
        });
    </script>

вы помещаете имя класса, которому необходимо использовать элемент управления, введите