Предотвращение поведения по умолчанию клавиши «return» в допустимых полях HTML5 - PullRequest
4 голосов
/ 16 мая 2011

Я создаю список основных задач, используя localStorage & Contenteditable, и когда я нажимаю клавишу ввода (в chrome), браузер добавляет новую строку.Я хочу предотвратить это поведение по умолчанию и отправить задачу.Размытие jQuery удаляет фокус, но только после добавления новой строки.Я пытался использовать,

return false
e.preventDefault();
e.stopPropagagtion();

Но ни один из них не сработал, есть ли способ предотвратить это?

$('.taskContent').keyup(function(e) {
        if(e.keyCode == 13) {
            $('.task').removeClass('editing');
            $('.task').children('a').fadeTo('medium', 0.5, function() {
                localStorage.setItem('tasksData', tasks.innerHTML);
            });
            $('.taskContent').blur();
        }
    });

Ответы [ 2 ]

7 голосов
/ 16 мая 2011

Я сталкивался с этой проблемой раньше, и я думаю, что проблема в том, что событие запускается при нажатии клавиши, а не при нажатии клавиши return / enter / tab и других клавишах "специальных функций".

Попробуйте изменить его на

$('.taskContent').keydown(function(e){});
2 голосов
/ 16 мая 2011

Попробуйте с событием keyDown , потому что к моменту нажатия клавиши символ вставлен.

...