﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Веб-программирование / JavaScript  / Поиск по алфавиту в выпадающем списке. / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Sat, 10 Jan 2009 07:11:26 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Поиск по алфавиту в выпадающем списке.</title><link>http://www.relib.com/forums/Topic911240-10-1.aspx</link><description>Спасибо! Премного благодарен!&lt;/P&gt;&lt;P&gt;Сегодня я проработаю и немного изменю и упрощу то, что в этих фунциях написано. Результат покажу.</description><pubDate>Wed, 07 Mar 2007 07:54:28 GMT</pubDate><dc:creator>evgenybe</dc:creator></item><item><title>RE: Поиск по алфавиту в выпадающем списке.</title><link>http://www.relib.com/forums/Topic911240-10-1.aspx</link><description>[quote][b]evgenybe (06.03.2007)[/b][hr]Да я не это спрашиваю. Что такое SELECT и как он работает, слава богу, не секрет. Секрет в том что делает, для чего предназначена каждая из функций коих тут, по-моему 4.[/quote]&lt;/P&gt;&lt;P&gt;&amp;lt;form class="inc" onsubmit="mu_paste(this.form)"&amp;gt;&lt;BR&gt;&amp;lt;div id="info" style="display: none; width: 200px; height: 30px; position: absolute;"&amp;gt;&amp;lt;/div&amp;gt;&lt;BR&gt;&amp;lt;INPUT  TYPE="text" NAME="name"  id="mu_text" VALUE="" step=0 onkeypress="find_mi(event,this)"&amp;gt;&lt;BR&gt;&amp;lt;/form&amp;gt;&lt;BR&gt;Скажем, на странице есть &lt;BR&gt;&amp;lt;SELECT name="lst" size="4" id="lst"&amp;gt;&lt;BR&gt;&amp;lt;option value="0"&amp;gt;---&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;option value="0"&amp;gt;толики&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;option value="1"&amp;gt;вася&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;option value="0"&amp;gt;петя&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;option value="0"&amp;gt;петруша&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;option value="0"&amp;gt;петя-сан&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;option value="0"&amp;gt;толиков&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;option value="0"&amp;gt;петя-сана&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;option value="0"&amp;gt;толиковна&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;option value="0"&amp;gt;наташа&amp;lt;/option&amp;gt;&lt;BR&gt;&amp;lt;/Select&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;BR&gt;&amp;lt;SCRIPT LANGUAGE="JavaScript"&amp;gt;&lt;BR&gt;&amp;lt;!--&lt;BR&gt;var find_=[];&lt;BR&gt;var rr=document.getElementById("lst").options;&lt;BR&gt;for(i=0;i&amp;lt;rr.length;i++){  //Перебирает элементы в select'e&lt;BR&gt;find_[i]=rr[i].text;//переписывает элементы в новый массив&lt;BR&gt;}&lt;BR&gt;var n_find="";&lt;BR&gt;var n_evt="";&lt;BR&gt;var k=0;  //Позиция для step&lt;BR&gt;var obj=document.getElementById("info");  //ссылаеться на невидимый div id="info"&lt;BR&gt;var obj_txt=document.getElementById("mu_text");  //ссылаеться на TYPE="text" NAME="name"&lt;/P&gt;&lt;P&gt;function mu_pole(x_text,it){  //Выделяет элемент в select'e&lt;BR&gt;var objRange = document.selection.createRange();&lt;BR&gt;obj.style.top = objRange.offsetTop+15; &lt;BR&gt;obj.style.left = objRange.offsetLeft+20;&lt;BR&gt;obj.innerHTML = x_text.slice(obj_txt.step); //отображает искомый элемент чуть ниже остальных...&lt;BR&gt;obj.style.display = "block";   //Делает невидимый div id="info" видимым&lt;BR&gt;rr[it].selected=true;// Выделяет найденный элемент&lt;BR&gt;}&lt;/P&gt;&lt;P&gt;function hide_mu_pole(it){ //Скрывает/Обнуляет найденное&lt;BR&gt;obj.innerHTML = "";   //Обнуляет значение div id="info"&lt;BR&gt;obj.style.display = "none";  //Делает div id="info" невидимым&lt;BR&gt;if(it){  //если послынное значение "существует"&lt;BR&gt;rr[0].selected=true; //Выделяет самый первый элемент в select'e&lt;BR&gt;}&lt;BR&gt;}&lt;/P&gt;&lt;P&gt;function mu_paste(ent_){  //Если найденное значение устраивает, то в TYPE="text" NAME="name" переписывает значение options[i]&lt;BR&gt;if(obj.innerHTML!=""){  //Если значение div id="info" содержит символы&lt;BR&gt;obj_txt.value+=obj.innerHTML; //Переписывает значение div'a в TYPE="text" NAME="name"&lt;BR&gt;obj.innerHTML = "";  //Обнуляет значение div id="info"&lt;BR&gt;hide_mu_pole();  //Посылает "несуществующее" значение в эту функцию&lt;BR&gt;event.returnValue=false;&lt;BR&gt;}&lt;BR&gt;event.returnValue=false;&lt;BR&gt;}&lt;/P&gt;&lt;P&gt;function find_mi(f_evt,x){  //нажатие на клавиатуру в  TYPE="text" NAME="name", ПОИСК&lt;BR&gt; var poz_=x.step;  //Определяет позицию (изначально step=0)&lt;BR&gt; if(f_evt.keyCode==8){  //Нажатие на Backspase&lt;BR&gt; obj_txt.step=100;  //Устанавливает позицию step=100&lt;BR&gt;    if(obj.style.display =="block"){ //Если div видим&lt;BR&gt; hide_mu_pole();  //Посылает "несуществующее" значение в эту функцию&lt;BR&gt; event.returnValue=true;&lt;BR&gt; return;  //Прекращает выполнение этой функции&lt;BR&gt; }&lt;BR&gt; event.returnValue=true;&lt;BR&gt; return;  //Прекращает выполнение этой функции&lt;BR&gt; }&lt;BR&gt; if(f_evt.keyCode==32){  //Нажатие на Пробел&lt;BR&gt;   n_evt="";&lt;BR&gt;   k=0; //Позиция для step&lt;BR&gt;   x.step=0;  //Устанавливает позицию step=0&lt;BR&gt;   n_find="";&lt;BR&gt;   if(obj.style.display =="block"){ //Если div видим&lt;BR&gt;    hide_mu_pole(); //Посылает "несуществующее" значение в эту функцию&lt;BR&gt; return;  //Прекращает выполнение этой функции&lt;BR&gt;   }&lt;BR&gt;   return;  //Прекращает выполнение этой функции&lt;BR&gt; } &lt;BR&gt; if(f_evt.keyCode==13){ //Нажатие на Enter&lt;BR&gt; x.step=k;  //step=k, смещение текста по оси Х в TYPE="text" NAME="name"&lt;BR&gt; return;  //Прекращает выполнение этой функции&lt;BR&gt; }  &lt;BR&gt;for(var i=0;i&amp;lt;find_.length;i++){  //цикл по поиску в select'e&lt;BR&gt;  if(find_[i].length&amp;gt;k){  //Если введено символов для поиска не больше слова в options[i]&lt;BR&gt;    for(j=0;j&amp;lt;=k;j++){  //Перебирает значение до введённого последнего символа в TYPE="text" NAME="name"&lt;BR&gt;   n_find+=find_[i].charCodeAt(j);  //Записывает все коды символы options[i], до кол-во введённых символов&lt;BR&gt;   }&lt;BR&gt;  }&lt;BR&gt;  &lt;BR&gt;alert("n_find="+n_find+" n_evt="+n_evt+" f_evt.keyCode="+f_evt.keyCode)  //Для примера&lt;BR&gt;  &lt;BR&gt;  if(n_find==(n_evt+""+f_evt.keyCode)&amp;amp;&amp;amp;poz_==k) { //Проверяет есть или нет искомого, если есть&lt;BR&gt;  n_evt+=f_evt.keyCode;&lt;BR&gt;  n_find="";&lt;BR&gt;  k++; //Увеличивает step на 1&lt;BR&gt;  x.step=k;&lt;BR&gt;  mu_pole(find_[i],i); //Выделяет элемент&lt;BR&gt;  event.returnValue=true;&lt;BR&gt;  break; //прекращает выполнение цикла&lt;BR&gt;  }&lt;BR&gt;  else {  //Искомое не найдено&lt;BR&gt;  n_find="";&lt;BR&gt;    if(obj.style.display =="block"&amp;amp;&amp;amp;i==find_.length-1){  //Если div видим и мы достигли конца select'a&lt;BR&gt;     hide_mu_pole(i); //Посылка функции для выделения первого элемента &lt;BR&gt;     n_find="";&lt;BR&gt;     n_evt+=f_evt.keyCode;&lt;BR&gt;     k++;&lt;BR&gt;     x.step=k;&lt;BR&gt;    }&lt;BR&gt;    if(i==find_.length-1){  //Если мы достигли конца select'a&lt;BR&gt;     x.step=100;  //Cтавит позицию по координате Х равную 100&lt;BR&gt;  n_find="";  //Обнуляет что ищет&lt;BR&gt;    }&lt;BR&gt;  }&lt;/P&gt;&lt;P&gt;}&lt;BR&gt;}&lt;BR&gt;//--&amp;gt;&lt;BR&gt;&amp;lt;/SCRIPT&amp;gt;&lt;/P&gt;&lt;P&gt;Это скрипт &lt;A class=SmlBoldLinks id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsRepeater_ctl25_smAuthorName onmouseover="window.status = window.location;return true;" title="View Владимир_М's Profile..." onmouseout="window.status='';return true;" href="javascript:void('');"&gt;Владимир'а_М&lt;/A&gt; с проставлеными мною комментариями...&lt;/P&gt;&lt;P&gt;зы: Надеюсь это поможет вам разобраться в скрипте...</description><pubDate>Tue, 06 Mar 2007 23:40:30 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>RE: Поиск по алфавиту в выпадающем списке.</title><link>http://www.relib.com/forums/Topic911240-10-1.aspx</link><description>Да я не это спрашиваю. Что такое SELECT и как он работает, слава богу, не секрет. Секрет в том что делает, для чего предназначена каждая из функций коих тут, по-моему 4.</description><pubDate>Tue, 06 Mar 2007 21:25:27 GMT</pubDate><dc:creator>evgenybe</dc:creator></item><item><title>RE: Поиск по алфавиту в выпадающем списке.</title><link>http://www.relib.com/forums/Topic911240-10-1.aspx</link><description>[quote][b]evgenybe (06.03.2007)[/b][hr]Если честно, то я в том коде абсолютно не разобрался. Куда там надо загружать список слов? а откуда выбирать числовые значения слова выбранного пользователем?&lt;P&gt;К нему бы ну хоть какие-то пояснения. &lt;P&gt;Может кто-то возьмется за это?[/quote]&lt;P&gt;Ну, попытаюсь объяснить...&lt;P&gt;работает скрипт точно под IE 6... При запуске скрипта надо нажать на одну из ячеек select'a, а точнее где значение ---. Далее в текстовом поле введём символ например: &lt;STRONG&gt;н &lt;/STRONG&gt;. в селекте будет выбран автоматически поле &lt;STRONG&gt;наташа&lt;/STRONG&gt;, и в текстовом поле будет тоже отображено слово &lt;STRONG&gt;н&lt;/STRONG&gt;аташа.&lt;P&gt;Список слов - это слова находящиеся между &amp;lt;option value="0"&amp;gt; и &amp;lt;/option&amp;gt; (например: вася, петя, толики, --- и т.д.) &lt;P&gt;Числовые значеня... &amp;lt;option &lt;STRONG&gt;value&lt;/STRONG&gt;="&lt;FONT color=#ff1111&gt;0&lt;/FONT&gt;"&amp;gt; &lt;P&gt;Вместо &lt;FONT color=#ff1111&gt;0 &lt;/FONT&gt;&lt;FONT color=#1f5080&gt;ставим любое число например id в БД...&lt;/FONT&gt;</description><pubDate>Tue, 06 Mar 2007 18:01:02 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>RE: Поиск по алфавиту в выпадающем списке.</title><link>http://www.relib.com/forums/Topic911240-10-1.aspx</link><description>[quote][b]Vizlim (05.03.2007)[/b][hr][quote][b]evgenybe (05.03.2007)[/b][hr]Конечно первое. Чтобы указатель перемещался на первое подходящее слово.[/quote]&lt;P&gt;А чем не устраивает последний ответ данный &lt;A class=SmlBoldLinks id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsRepeater_ctl24_smAuthorName onmouseover="window.status = window.location;return true;" title="View Владимир_М's Profile..." onmouseout="window.status='';return true;" href="javascript:void('');"&gt;Владимир_М&lt;/A&gt; в вами созданной теме: &lt;A href="http://www.relib.com/forums/Topic907001-10-1.aspx"&gt;http://www.relib.com/forums/Topic907001-10-1.aspx&lt;/A&gt;&lt;P&gt;Тот код и являеться решением проблемы...[/quote]&lt;P&gt;Если честно, то я в том коде абсолютно не разобрался. Куда там надо загружать список слов? а откуда выбирать числовые значения слова выбранного пользователем?&lt;P&gt;К нему бы ну хоть какие-то пояснения. &lt;P&gt;Может кто-то возьмется за это?</description><pubDate>Tue, 06 Mar 2007 14:04:04 GMT</pubDate><dc:creator>evgenybe</dc:creator></item><item><title>RE: Поиск по алфавиту в выпадающем списке.</title><link>http://www.relib.com/forums/Topic911240-10-1.aspx</link><description>[quote][b]evgenybe (05.03.2007)[/b][hr]Конечно первое. Чтобы указатель перемещался на первое подходящее слово.&lt;P&gt;А по поводу самой темы - я ее уже в четвертый или в пятый раз поднимаю, и ни разу ответа не получил.[/quote]&lt;P&gt;А чем не устраивает последний ответ данный &lt;A class=SmlBoldLinks id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsRepeater_ctl24_smAuthorName onmouseover="window.status = window.location;return true;" title="View Владимир_М's Profile..." onmouseout="window.status='';return true;" href="javascript:void('');"&gt;Владимир_М&lt;/A&gt; в вами созданной теме: &lt;A href="http://www.relib.com/forums/Topic907001-10-1.aspx"&gt;http://www.relib.com/forums/Topic907001-10-1.aspx&lt;/A&gt;&lt;P&gt;Тот код и являеться решением проблемы...</description><pubDate>Mon, 05 Mar 2007 19:31:59 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>RE: Поиск по алфавиту в выпадающем списке.</title><link>http://www.relib.com/forums/Topic911240-10-1.aspx</link><description>Конечно первое. Чтобы указатель перемещался на первое подходящее слово.&lt;/P&gt;&lt;P&gt;А по поводу самой темы - я ее уже в четвертый или в пятый раз поднимаю, и ни разу ответа не получил.</description><pubDate>Mon, 05 Mar 2007 17:32:56 GMT</pubDate><dc:creator>evgenybe</dc:creator></item><item><title>RE: Поиск по алфавиту в выпадающем списке.</title><link>http://www.relib.com/forums/Topic911240-10-1.aspx</link><description>Не совсем ясно, надо чтобы при введении букв  фокус перемещался в списке туда где начинаются эти буквы в выпадающем меню, или именно чтобы выпадающее меню включало только те елементы которые подходят под критерий?&lt;P&gt;Первое реализовать легче, второе сложнее и задержки при больших объемах информации скорее всего будут. Тут есть гдето тема где это обсуждается, я ее хорошо помню, тоже выпадающий список человек делал, и примеров там хватало.&lt;P&gt; &lt;P&gt;ЗЫ: А, ну да&lt;BR&gt;&lt;A href="http://www.relib.com/forums/Topic907001-10-1.aspx"&gt;http://www.relib.com/forums/Topic907001-10-1.aspx&lt;/A&gt;&lt;BR&gt;это твоя тема :)</description><pubDate>Mon, 05 Mar 2007 16:48:58 GMT</pubDate><dc:creator>DarkSet</dc:creator></item><item><title>Поиск по алфавиту в выпадающем списке.</title><link>http://www.relib.com/forums/Topic911240-10-1.aspx</link><description>Нужен пример кода.&lt;/P&gt;&lt;P&gt;Нужно нечто похожее на выпадающий список. То есть текстовое окно + раскрывающийся список. К примеру список городов.&lt;/P&gt;&lt;P&gt;Если пользователь вводит в текстовое окно скажем "Ад", то появляется паскрывающийся список и в нем высвечивается "Адлер", "Адис-Абеба", и т.д. &lt;BR&gt;Чем больше букв вводит пользователь, тем точнее выбор.&lt;/P&gt;&lt;P&gt;Затем пользователь может щелкнуть мышкой на выбранном городе в раскрывающемся списке. При этом:&lt;/P&gt;&lt;P&gt;список закрывается&lt;BR&gt;в окне вводится полное название выбранного города&lt;BR&gt;В переменную записывается код выбранного города.&lt;/P&gt;&lt;P&gt;При этом пользователь не должен ощущать никаких временных задержек.</description><pubDate>Sun, 04 Mar 2007 11:04:47 GMT</pubDate><dc:creator>evgenybe</dc:creator></item></channel></rss>