Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Возврат фокуса после Enter (https://javascript.ru/forum/dom-window/26461-vozvrat-fokusa-posle-enter.html)

solomon2 09.03.2012 15:43

Возврат фокуса после Enter
 
Здравствуйте! Есть инпут c автокомплитом. Список автокомплита формируется тегами <li>. Как сделать, чтобы при выборе из списка не мышкой, а клавишей Enter, фокус возвращался в поле инпута. Если правильно понимаю, нужно поймать событие нажатия клавиши над <li>, но почему то не получается?

Список формируется динамически. У li не появляется нужный атрибут:

li.attr('onkeyPress', 'keyd(event)');


Это функция для Enter:

function keyd(event){
	var key = event.keyCode;
		if(key==13){
			$input.focus();
		}
	}

yu_v_b 09.03.2012 18:51

Доброго времени суток.
Попробуй так:
-это в скрипт (можно по дному, если нужен только фокус)
if(this.value==this.defaultValue) this.value='';
if(this.value=='') this.value=this.defaultValue;


-это html кнопка
onfocus="if(this.value==this.defaultValue) this.value='';"  onblur="if(this.value=='') this.value=this.defaultValue;"

yu_v_b 09.03.2012 18:53

Ссори
"это html кнопка" -читать как "это html форма"

solomon2 09.03.2012 19:08

немного не понял.

вот так верно?

$(this).attr('onfocus', 'if(this.value==this.defaultValue) this.value="";');

$(this) - здесь это элемент li

solomon2 09.03.2012 19:34

что-то не то...
может непонятно написал. мне надо установить фокус в инпут после выбора элемента в списке клавишей enter

solomon2 09.03.2012 19:39

попробовал такую функцию:

document.onkeydown=key;
function key()
{
if(event.keyCode==13) $input.focus();
}


фокус ставится, но возникает ошибка: event is not defined

solomon2 09.03.2012 20:55

спасибо. задача решена


Часовой пояс GMT +3, время: 20:40.