Внутри текстовой области: поймать, если пользователь нажимает ввод в пустой строке - PullRequest
1 голос
/ 14 декабря 2011

Я знаю, что это довольно странный вопрос, но: внутри текстовой области, как я могу узнать, нажимает ли пользователь ввод (e.keycode == 13) в пустой строке при нажатии клавиши событие?

Мне нужно запускать определенную функцию синхронизации каждый раз, когда пользователь нажимает, введите , за исключением , если пользователь просто добавляет новые строки для забавы (вызов функции синхронизации в этих случаях будет ужасной тратой ресурсов) .

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Нашли решение!

$('#q').keydown(function(e){
    if(e.keyCode == 13) {
        if($(this).val()) {
            if($(this).val().substr($(this).getCursorPosition()-1,1).length) {
                //sync function here!
            } else {
                //user is pressing enter on empty line
            }
        }
    }
});

new function(a){a.fn.getCursorPosition=function(){var b=0;var c=a(this).get(0);if(document.selection){c.focus();var d=document.selection.createRange();var e=document.selection.createRange().text.length;d.moveStart("character",-c.value.length);b=d.text.length-e}else if(c.selectionStart||c.selectionStart=="0")b=c.selectionStart;return b}}(jQuery);
0 голосов
/ 14 декабря 2011

Ну, это зависит от того, как они туда попали.Если пользователь нажимает ввод в полной строке, вызывается ли функция синхронизации?Если так, то как они вообще попадают на пустую строку?

...