|
|
|
Supreme Being
      
участник
Last Login: 27.06.2008 14:10
Сообщ.: 275,
Visits: 865
|
|
А можно ли сделать такую вещь:
У меня из БД в Select записываются данные, допустим это выглядит так:
[Select name=a]
[option value=1]abcde
[option value=2]xyfwq
[option value=2]xyzwq
[option value=3]strlp
[/Select]
Возможно ли сделать так, чтобы при наборе названия в текстовом поле скрипт допечатывал слова беря их из Select-а.
И чтобы этот Select было не видно.
Например я пишу xy, а скрипт сам допечатывает fwq, я продожаю писать xyz, а скрипт допечатывает wq.
Или есть более легкий способ?
|
|
|
|
|
Junior Member
      
участник
Last Login: 09.10.2006 13:14
Сообщ.: 14,
Visits: 79
|
|
Ну что бы селект не было видно это просто - задаешь соответствующее свойство стиля. А для придания скрипту "ума", если на вскидку, то можно сделать следующее: 1. Забиваешь пункты селекта в массив. 2. Добавляешь обработчик нажатий клавиш к текстовому полю. 3. При каждом нажатие клавишы ищешь первое совпадение в массиве, если таково имеется, то можно в дополнительном слое выводить слово целиком и при нажатии, скажем ентера, добиваем введенное слово.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 11.08.2008 17:37
Сообщ.: 2 836,
Visits: 30 979
|
|
тебе повезло, я как раз то же самое писал когда-то, держи!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>нажми клавишу</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <script> var selElem=new Array([0,"Арканов"],[123,"Абадонов"],[23,"Алегров"],[1,"Борный"],[2,"Витяев"]);//эти значения занесутся в селект selElem.sort(msort) var tmpArr=new Array(); var obj; function selectedPos(){ var e=event.keyCode; for(i=0;i<tmpArr.length;i++){ if(retKeyCode(tmpArr[i].substring(0,1))==e){ if(obj[i])obj[i].selected=true; } } }function loadSelect(selId,selElem){ obj=document.getElementById("sel") var sel=document.getElementById(selId); if(sel){ for(var i=0;i<selElem.length;i++){ sel[sel.length]=new Option(selElem[i][1],selElem[i][0]); } }else{ setTimeout("loadSelect("+selId+","+selElem+")",500); } for(var i=0;i<obj.length;i++)tmpArr.push(obj[i].text); } function retKeyCode(str){ return(str.charCodeAt()) } function msort(arg1,arg2){ if(arg1[1]<arg2[1]){ return -1; }else if(arg1[1]>arg2[1]){ return 1; }else if(arg1[1]==arg2[1]){ return 0; } } </script> </head> <body onLoad="loadSelect('sel',selElem)" onkeypress="selectedPos()"> <select id="sel"></select><br> нажми на клавишу, не забудь переключить раскладку клавиатуры.<br> если в селекте русский текст, раскладка клавы должна тоже быть русской, и наоборот! если в селект записаны заглавные буквы, жать клавишу нужно с шифтом </body> </html>
|
|
|
|
|
Supreme Being
      
участник
Last Login: 27.06.2008 14:10
Сообщ.: 275,
Visits: 865
|
|
|
|
|
|
Supreme Being
      
участник
Last Login: 27.06.2008 14:10
Сообщ.: 275,
Visits: 865
|
|
А как выделить часть текста?
Например, есть строка: "абвгдежзиклмн"
надо выделить только "иклмн"
Я пробовал через select(), но не получилось. Может там все-таки какие-нибудь параметры есть?
|
|
|
|