Поиск по всплывающему списку
Добрый день!
Имеется код, который был взят из Интернета. Код работает, но требуется сделать так, чтобы при нахождении требуемой строки, при её нажатии срабатывала гиперссылка на "https://...". Пример - я пишу "адрес абон.." он находит строку "'Адрес абонентского отдела/ЦПО',". Требуется, чтобы при нажатии на эту строку, происходила переадресация. Подскажите код на двух строках, пожалуйста. Или имеется возможность облегчить код? <html xmlns="http://www.w3.org/1999/xhtml"> <BODY> <div id="podst"></div> <INPUT type="text" class="opis" /> <script> var streetArr=[ 'Адрес абонентского отдела/ЦПО', 'Время работы абонентского отдела/ЦПО', 'Настройка роутера', 'Настройка модема', ].sort(); document.onkeyup=function(e) { e=e||window.event; E=e.srcElement||e.target; if(E.className=="opis") { current_Target=E; var autocompl=''; var m=0; for(var i=0;i<streetArr.length;i++) { if(streetArr[i].toLowerCase().indexOf(current_Target.value.toLowerCase())!=-1) { autocompl+="<option value='"+streetArr[i]+"'>"+streetArr[i]+"<\/option>";m++; } } if(autocompl!="") {if(m>20){m=20} document.getElementById("podst").innerHTML='\ <select \ multiple size='+m+' >'+autocompl+'<\/select>'; } else{} } } </SCRIPT> </BODY> </html> |
<ul> <li><a href = "https://javascript.ru/forum/">Форум JavaScript</a></li> <li><a href = "https://learn.javascript.ru/">Учебник JavaScript</a></li> </ul> |
Цитата:
|
ellexpron, Dilettante_Pro, предлагает вам использовать в кач-ве контейнера под результаты не select, а ul.
В этом случае никаких костылей с редиректами не понадобится писать. |
<html xmlns="http://www.w3.org/1999/xhtml"> <BODY> <div id="podst"></div> <INPUT type="text" class="opis" /> <script> var streetArr=[ ['Адрес абонентского отдела/ЦПО','https://javascript.ru/forum/'], ['Время работы абонентского отдела/ЦПО','https://javascript.ru/book'], ['Настройка роутера','https://learn.javascript.ru/'], ['Настройка модема','https://learn.javascript.ru/quiz'], ].sort(); document.onkeyup=function(e) { var e=e||window.event; var E=e.srcElement||e.target; if(E.className=="opis") { current_Target=E; var autocompl=''; var m=0; for(var i=0;i<streetArr.length;i++) { if(streetArr[i][0].toLowerCase().indexOf(current_Target.value.toLowerCase())!=-1) { autocompl+="<option value='"+streetArr[i][1]+"'>"+streetArr[i][0]+"<\/option>";m++; } } if(autocompl!="") {if(m>20){m=20} document.getElementById("podst").innerHTML='\ <select \ multiple size='+m+' >'+autocompl+'<\/select>'; } else{} } } document.onclick=function(e) { var e=e||window.event; var E=e.srcElement||e.target; if(E.tagName=="OPTION") { window.location = E.value; } } </SCRIPT> </BODY> </html> |
|
Может быть, стоит взять код попроще и использовать следующее?
<html> <body> <input list="browsers"> <datalist id="browsers"> <option value="Internet Explorer"> <option value="Firefox"> <option value="Google Chrome"> <option value="Opera"> <option value="Safari"> </datalist> </body> </html> Только гиперссылки не работают. Что я делаю не так? <option value="https://vk.com/">Internet Explorer</option> |
Цитата:
|
Цитата:
|
<html xmlns="http://www.w3.org/1999/xhtml"> <BODY> <div id="podst"></div> <INPUT type="text" class="opis" /> <script> var streetArr=[ ['Адрес абонентского отдела/ЦПО','https://javascript.ru/forum/'], ['Время работы абонентского отдела/ЦПО','https://javascript.ru/book'], ['Настройка роутера','https://learn.javascript.ru/'], ['Настройка модема','https://learn.javascript.ru/quiz'], ].sort(); document.onkeyup=function(e) { var e=e||window.event; var E=e.srcElement||e.target; if(E.className=="opis") { current_Target=E; var autocompl=''; var m=0; for(var i=0;i<streetArr.length;i++) { if(streetArr[i][0].toLowerCase().indexOf(current_Target.value.toLowerCase())!=-1) { autocompl+="<option value='"+streetArr[i][1]+"'>"+streetArr[i][0]+"<\/option>";m++; } } if(autocompl!="") {if(m>20){m=20} document.getElementById("podst").innerHTML='\ <select \ multiple size='+m+' >'+autocompl+'<\/select>'; } else{} } } document.onclick=function(e){ var e=e||window.event; var E=e.srcElement||e.target; if(E.tagName=="OPTION" || E.value && E.tagName=="SELECT") { window.location = E.value; } } </SCRIPT> </BODY> </html> |
Часовой пояс GMT +3, время: 11:13. |