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

Отключить ввод ключа в определенных текстовых окнах

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

Когда я нажимаю enter в своих текстовых окнах, он ничего не должен делать.

Я пробовал несколько скриптов JavaScript и jQuery, но для меня ничего не работает.

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

    $('#comment').keyup(function() {
        var txt = $('#comment').val();
        $('#comment').val(txt.replace(/[\n\r]+/g, " "));
    });
});
4b9b3361

Ответ 1

Это работает для меня.

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

jsFiddle.

Ваша вторая часть выглядит так, что она предназначена для захвата людей, вставляемых в несколько строк. В этом случае вы должны привязать его к keyup paste.

Ответ 2

Он запрещает пользователю нажимать Ввод в текстовом поле, и здесь я возвращаю false, которые препятствуют отправке формы.

$(document).ready(function()
    {
        // Stop user to press enter in textbox
        $("input:text").keypress(function(event) {
            if (event.keyCode == 13) {
                event.preventDefault();
                return false;
            }
        });
});

Ответ 3

Если вы хотите запретить клавишу Enter для определенного текстового поля, используйте inline js.

<input type="text" onkeydown="return (event.keyCode!=13);"/>

Ответ 4

Работает для меня:

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

http://jsfiddle.net/esEUm/

UPDATE

Если вы пытаетесь предотвратить отправку родительской формы, а не разрыв строки (что имеет смысл, если вы используете textarea, который вы, по-видимому, не делаете?), вы можете захотеть для проверки этого вопроса: Отключить ключ ввода в форме, заполненной jQuery

Ответ 5

Я нашел это решение комбайна в http://www.askmkhize.me/how-can-i-disable-the-enter-key-on-my-textarea.html

$('textarea').keypress(function(event) {

if ((event.keyCode || event.which) == 13) {

    event.preventDefault();
    return false;

  }

});

$('textarea').keyup(function() {

    var keyed = $(this).val().replace(/\n/g, '<br/>');
    $(this).html(keyed);


});

Ответ 6

Использовать глобальный селектор $('input')... если вы используете несколько текстовых полей на странице, ID ('#comment') вызовет проблемы. И при использовании динамического содержимого свяжите его с помощью .live, например.

$('input:not(textarea)').live('keypress',function(e) {
    if (e.which == 13) return false;
    if (e.which == 13) e.preventDefault();
});

(Отключить ввод для текстовых полей, а листья разрешены для текстовых областей)

Ответ 7

<script type="text/javascript">

   function stopRKey(evt) { 
     var evt = (evt) ? evt : ((event) ? event : null); 
     var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
     if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
   } 


document.onkeypress = stopRKey; 

</script>

http://webcheatsheet.com/javascript/disable_enter_key.php

Ответ 8

Если вы хотите отключить все текстовые поля поиска. Дайте всем им класс и используйте следующий класс, например "search_box".

//prevent submission of forms when pressing Enter key in a text input
$(document).on('keypress', '.inner_search_box', function (e) {
    if (e.which == 13) e.preventDefault();
});

ура!:)

Ответ 9

Я не понимаю, почему все здесь предлагают использовать jquery. Для него существует очень простой метод для конкретного поля элемента ввода. Вы можете использовать его атрибут onKeyDown и использовать в нем метод e.preventDefault(). Вот так:

<input type="text" onKeyDown={(e) => e.preventDefault()}/>

Примечание. Это метод React JSX, использующий этот атрибут, вы можете использовать основной способ HTML.