Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Тег <Select> (http://forum.oszone.net/showthread.php?t=76261)

Scorpion666 16-12-2006 00:54 525277

Тег <Select>
 
Доброе время суток!
Вопрос может и глупый, но я не могу найти на него решение!
У меня есть некая форма, в которой использется выподающий список! Возможно ли вводить свое значение в поле, а не выбирать его из списка?
Заранее благодарен!

vadimiron 16-12-2006 01:09 525280

HTML код:

<input type="text"......

Scorpion666 16-12-2006 01:13 525282

vadimiron
Цитата:

<input type="text"......
Это не то!
Я имею ввиду, в этом же объекте вводить свое значение, если пользователю не подходит значения из писка!

vadimiron 16-12-2006 02:11 525294

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

Sham 16-12-2006 09:55 525351

Scorpion666 ...или на onkeypress меняй на input - эффект будет желаемый...

Scorpion666 17-12-2006 20:33 525898

Sham
Цитата:

...или на onkeypress меняй на input - эффект будет желаемый...
А поподробней можно?
:)

XCodeR 17-12-2006 20:49 525903

Scorpion666
HTML код:

<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 526392

Scorpion666 держи и мой вариант (откопал...)

HTML код:

...
<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 526408

еще как вариант - написать полностью самому контрол, используя JS.

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

Sham 19-12-2006 00:52 526432

XCodeR это эмуляция...

XCodeR 19-12-2006 17:43 526717

Sham
в курсе, только какая разница? есть проблема - есть решения.

VeshchiyOleg 25-12-2006 17:11 528968

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 529072

VeshchiyOleg
Цитата:

а потом передумает обратно на свою
введенное юзером значение никуда не удаляется из поля (поле просто скрывается, но не удаляется же).... хотя идея неплохая, но imho здесь лишняя... :)


Время: 01:43.

Время: 01:43.
© OSzone.net 2001-