Показать полную графическую версию : Тег <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
Зачем в этом же? Так не принято - никакой юзер такого не поймёт - ноль юзабилити.
Сделайте просто рядом текстовое поле, над которым можно написать "...или Ваше значение"
Scorpion666 ...или на onkeypress меняй на input - эффект будет желаемый...
Scorpion666
17-12-2006, 20:33
Sham
...или на onkeypress меняй на input - эффект будет желаемый...
А поподробней можно?
:)
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>
развивайте идею...
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">
еще как вариант - написать полностью самому контрол, используя JS.
поискал чуть-чуть в гугле:
http://particletree.com/demos/combo-box-demo/
http://www.metabuilders.com/Tools/ComboBox.aspx
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;
}
}
ну это типа если юзер передумает и схочет-таки стандартную выбрать, а потом передумает обратно на свою
VeshchiyOlegа потом передумает обратно на своювведенное юзером значение никуда не удаляется из поля (поле просто скрывается, но не удаляется же).... хотя идея неплохая, но imho здесь лишняя... :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.