PDA

Показать полную графическую версию : Тег <Select>


Scorpion666
16-12-2006, 00:54
Доброе время суток!
Вопрос может и глупый, но я не могу найти на него решение!
У меня есть некая форма, в которой использется выподающий список! Возможно ли вводить свое значение в поле, а не выбирать его из списка?
Заранее благодарен!

vadimiron
16-12-2006, 01:09
<input type="text"......

Scorpion666
16-12-2006, 01:13
vadimiron
<input type="text"......
Это не то!
Я имею ввиду, в этом же объекте вводить свое значение, если пользователю не подходит значения из писка!

vadimiron
16-12-2006, 02:11
Scorpion666
Зачем в этом же? Так не принято - никакой юзер такого не поймёт - ноль юзабилити.
Сделайте просто рядом текстовое поле, над которым можно написать "...или Ваше значение"

Sham
16-12-2006, 09:55
Scorpion666 ...или на onkeypress меняй на input - эффект будет желаемый...

Scorpion666
17-12-2006, 20:33
Sham
...или на onkeypress меняй на input - эффект будет желаемый...
А поподробней можно?
:)

XCodeR
17-12-2006, 20:49
Scorpion666
<html>
<script>
function Change()
{
if(s.style.display!="none")
{
s.style.display="none";
i.style.display="block";
}
else
{
s.style.display="block";
i.style.display="none";
}
}
</script>
<body>
<form>
<input style="display:none;width:100" id=i type=text onblur=Change()>
<select style="width:100" id=s onmousedown=Change()>
<option>ddd
<option>ddd
</select>
</form>
</body>
</html>

развивайте идею...

Sham
18-12-2006, 23:25
Scorpion666 держи и мой вариант (откопал...)

...
<script>
function ch(y){
if(document.getElementById('sel').value=='your'||y){
with(document){getElementById('sel').style.display='none';
getElementById('in').style.display='';
getElementById('in').focus();}
}
}
function no(){
if(document.getElementById('in').value==''){
with(document){getElementById('in').style.display='none';
getElementById('sel').style.display='';
getElementById('sel').focus();
getElementById('ooo').selected=true;}
}
}
</script>
...
<select onkeydown="ch(1)" id="sel" onchange="ch()" name="name">
<option id="ooo" value="n_1">1. Элемент списка</option>
<option value="n_2">2. Элемент списка</option>
<option value="your">Ввести свое значение</option>
</select>
<input type="text" size="16" width="16" id="in" style="display: none" onblur="no()" name="name">

XCodeR
18-12-2006, 23:56
еще как вариант - написать полностью самому контрол, используя JS.

поискал чуть-чуть в гугле:
http://particletree.com/demos/combo-box-demo/
http://www.metabuilders.com/Tools/ComboBox.aspx

Sham
19-12-2006, 00:52
XCodeR это эмуляция...

XCodeR
19-12-2006, 17:43
Sham
в курсе, только какая разница? есть проблема - есть решения.

VeshchiyOleg
25-12-2006, 17:11
2 Sham а я б переписал функцию no() таким образом:
function no(){
with(document){
if(getElementById('in').value!=''){
var t=getElementById('sel');
t.options[t.options.length] = new Option (getElementById('in').value,getElementById('in').value);
t.selectedIndex = t.options.length - 1;
}
getElementById('in').style.display='none';
getElementById('sel').style.display='';
getElementById('sel').focus();
getElementById('ooo').selected=true;
}
}
ну это типа если юзер передумает и схочет-таки стандартную выбрать, а потом передумает обратно на свою

Sham
25-12-2006, 21:46
VeshchiyOlegа потом передумает обратно на своювведенное юзером значение никуда не удаляется из поля (поле просто скрывается, но не удаляется же).... хотя идея неплохая, но imho здесь лишняя... :)




© OSzone.net 2001-2012