From 78bfb8b14e4644682d37e769b69acf8a960ff067 Mon Sep 17 00:00:00 2001 From: Friendika Date: Fri, 11 Nov 2011 22:40:19 -0800 Subject: [PATCH] some works on autocomplete (return with no selection = cancel, tab = select next) --- js/fk.autocomplete.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/js/fk.autocomplete.js b/js/fk.autocomplete.js index 3f73c6fbb..545fd1645 100644 --- a/js/fk.autocomplete.js +++ b/js/fk.autocomplete.js @@ -23,6 +23,13 @@ function ACPopup(elm,backend_url){ style = $(elm.container).offset(); w = elm.container.offsetWidth; h = elm.container.offsetHeight; + // Quick fix for chrome until I get a tool to inspect the dom + // Chrome returns 0x0 + if(! w) + w = 530; + if(! h) + h = 130; + } style.top=style.top+h; @@ -105,9 +112,13 @@ ACPopup.prototype._search = function(){ $(this.cont).append(elm); } ACPopup.prototype.onkey = function(event){ - if (event.keyCode == '13' && this.idsel>-1) { - this.cont.children()[this.idsel].click(); - event.preventDefault(); + if (event.keyCode == '13') { + if(this.idsel>-1) { + this.cont.children()[this.idsel].click(); + event.preventDefault(); + } + else + this.close(); } if (event.keyCode == '38') { //cursor up cmax = this.cont.children().size()-1; @@ -115,14 +126,14 @@ ACPopup.prototype.onkey = function(event){ if (this.idsel<0) this.idsel=cmax; event.preventDefault(); } - if (event.keyCode == '40') { //cursor down + if (event.keyCode == '40' || event.keyCode == '9') { //cursor down cmax = this.cont.children().size()-1; this.idsel++; if (this.idsel>cmax) this.idsel=0; event.preventDefault(); } - if (event.keyCode == '38' || event.keyCode == '40' ) { + if (event.keyCode == '38' || event.keyCode == '40' || event.keyCode == '9') { this.cont.children().removeClass('selected'); $(this.cont.children()[this.idsel]).addClass('selected'); }