我知道这是一个奇怪的问题,但是:在textarea内部,我如何知道用户是否按下Enter键(e.keycode == 13)在空行上keydown活动?
每次用户按下除之外,我必须触发一个特定的同步功能,如果用户只是为了好玩添加新行(在这些情况下调用同步功能,将会浪费资源) )。
答案 0 :(得分:2)
找到解决方案!
$('#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);
答案 1 :(得分:0)
嗯,这取决于他们如何到达那里。如果用户按完整行输入,是否会调用同步功能?如果是这样,那么他们如何得到一个空行呢?