jQuery - при вводе ключевого текста отправки - разрыв строки все еще вставлен в текстовое поле

У меня возникла небольшая проблема с отправкой текста из текстового поля, как только нажата клавиша ввода.

Введенный текст добавляется к div с аккуратным эффектом, а затем введенный текст удаляется из текстового поля, что все работает нормально. Однако, когда вы нажимаете Enter, разрыв строки на самом деле все еще вставляется в текстовое поле, сразу после чего текст добавляется и удаляется. Таким образом, на долю секунды вы можете увидеть добавляемый разрыв строки, что совсем не выглядит красиво.

Как предотвратить вставку разрыва строки?

Спасибо! Деннис

ОБНОВИТЬ:

Какой-то код здесь. Я использую клавиатуру.

$('#postDiv').on('keyup', '#posttext', function(e) {
    if ((e.which == 13) && !event.shiftKey) {
        post($(this));
    }
});

person weltschmerz    schedule 03.05.2012    source источник
comment
Вы присоединяетесь к событию keyup или keydown? Разместите код.   -  person Tejs    schedule 04.05.2012


Ответы (1)


$('#postDiv').on('keydown', '#posttext', function(e) {
    if ((e.which == 13) && !event.shiftKey) {
        post($(this));
        return false
    }
});

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

person paulslater19    schedule 03.05.2012
comment
Вот где ты хочешь быть :) - person Jeff Hines; 04.05.2012
comment
@ paulslater19 а почему вы возвращаете false? - person weltschmerz; 04.05.2012
comment
@Dennis return false предотвратит вставку line break в ваше текстовое поле. - person Fabrício Matté; 04.05.2012
comment
Это предотвратит вставку новой строки. Думаю, то же самое можно было сделать через e.preventDefault(). return false также останавливает распространение (т. Е. Событие всплывает в DOM). Но вам, вероятно, не стоит слишком об этом беспокоиться - person paulslater19; 04.05.2012