Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Автозавершение набора текста. (https://javascript.ru/forum/dom-window/11606-avtozavershenie-nabora-teksta.html)

lolka84 04.09.2010 20:41

Спасибо, ребята)
JS для меня темный лес, да.

lolka84 06.09.2010 17:18

Ребята, апну тему.
Добавил условие (if (event.keyCode === 38)), что б скрипт работал только тогда, когда нажата клавиша UP (сделано для того, что бы можно было вносить новые значения в БД, ибо без этого условия сделать невозможно - скрипт автоматом подставляет только то, что есть в селекте).
Возникла следущая проблема: регистр символов. Т.е. если вводить "новос.." скрипт не работает. В селекте есессно все названия с большой буквы. Как побороть ?
<script type="text/javascript"> 
	    document.getElementById( 'a' ).onkeypress = function ( e ) { 
	        if ( (e = e || window.event).keyCode !== 8 ) { 
			  if (event.keyCode === 38) {
	        	var sel = document.getElementById( 's' ).getElementsByTagName( 'option' ), 
	       	    city = '', find = 0; 
	       		    for ( var i = 0; i < sel.length; i++ ) { 
	           			 if ( this.value.length && sel[i].value.indexOf( this.value ) === 0 ) city = sel[i].value, find++; 
	                } 
	                     if ( find === 1 ) this.value = city, e.preventDefault ? e.preventDefault() : (e.returnValue = false); 
			  }
		   } 
	    } 
	</script>

exec 06.09.2010 18:00

sel[i].value.indexOf( this.value ) заменить на sel[i].value.toLowerCase().indexOf( this.value.toLowerCase() )

lolka84 06.09.2010 18:37

Спасибо, дружище)


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