Умный скрипт
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Умный скрипт Expand / Collapse
Автор
Сообщение
28.08.2006 18:09


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme 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.

Или есть более легкий способ?
Сообщ. #903463
28.08.2006 18:55
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 09.10.2006 13:14
Сообщ.: 14, Visits: 79
Ну что бы селект не было видно это просто - задаешь соответствующее свойство стиля. А для придания скрипту "ума", если на вскидку, то можно сделать следующее:
1. Забиваешь пункты селекта в массив.
2. Добавляешь обработчик нажатий клавиш к текстовому полю.
3. При каждом нажатие клавишы ищешь первое совпадение в массиве, если таково имеется, то можно в дополнительном слое выводить слово целиком и при нажатии, скажем ентера, добиваем введенное слово.
Сообщ. #903468
29.08.2006 18:33
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme 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>

Сообщ. #903550
30.08.2006 16:09


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.06.2008 14:10
Сообщ.: 275, Visits: 865
Спасибо большое :)
Сообщ. #903605
31.08.2006 11:35


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.06.2008 14:10
Сообщ.: 275, Visits: 865
А как выделить часть текста?
Например, есть строка: "абвгдежзиклмн"
надо выделить только "иклмн"
Я пробовал через select(), но не получилось. Может там все-таки какие-нибудь параметры есть?
Сообщ. #903656
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 5:06