Как заблокировать ввод возврата каретки в textarea?

Как заблокировать ввод возврата каретки, новой строки, одинарных кавычек и двойных кавычек в textarea с помощью asp.net mvc, во время ключевого пресс-мероприятия?

2 ответов


вы можете использовать jquery и подписаться на .keypress() событие текстового поля:

$('textarea').keypress(function(event) {
    // Check the keyCode and if the user pressed Enter (code = 13) 
    // disable it
    if (event.keyCode == 13) {
        event.preventDefault();
    }
});

чтобы быть удобным с изменением текста, вызванного пользователем перетащить других текста / элементов внутри textarea или по вставка текст внутри него, необходимо прослушивание на change событие тоже.

кроме того, я предлагаю использовать .on() метод, доступный с jQuery 1.7, и для обнаружения клавиши enter, нажатой пользователем через event.which свойство объекта события, чтобы иметь твердое поведение кросс-браузера вашего app:

var $textarea = $('#comment');
// events to bind:
$textarea.on('keydown keyup change focus blur', function(e) {
    if (e.type === 'change') {
        // this event is triggered when the text is changed through drag and drop too,
        // or by pasting something inside the textarea;
        // remove carriage returns (\r) and newlines (\n):
        $textarea.val($textarea.val().replace(/\r?\n/g, ''));
    }
    if (e.which === 13) {
        // the enter key has been pressed, avoid producing a carriage return from it:
        e.preventDefault();
    }
});