Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите в добавлении элемента в <select>
 
 автор: Hammer.nv   (25.03.2007 в 17:51)   письмо автору
 
 

Имется список:
<select name="login" size="7">
<option></option>
</select>
А так же кнопка и поле input
Необходимо чтобы при нажатии кнопки, текст в Input добавлялся в select.
Жду помощи.

   
 
 автор: bronenos   (25.03.2007 в 18:01)   письмо автору
 
   для: Hammer.nv   (25.03.2007 в 17:51)
 

<select id='login' name='login' size='7'>
<option></option>
</select><br/>
<input id='text' /><br/>
<input type='button' onClick='add()' value='Добавить' />

<script>
function add()
{
  var login = document.getElementById('text').value;
  document.getElementById('login').innerHTML += "<option value='" + login + "'>" + login + '</option>';
}
</script>

Не проверял, но должно работать

   
 
 автор: Hammer.nv   (25.03.2007 в 18:08)   письмо автору
 
   для: bronenos   (25.03.2007 в 18:01)
 

Хм..что-то не работает..

   
 
 автор: mesos   (25.03.2007 в 18:17)   письмо автору
 
   для: Hammer.nv   (25.03.2007 в 18:08)
 

Если нужна кроссбраузерность, то, как ни странно, спасет только полное удаление select`a и построение его по новой методами DOM (пример попозже выложу).
Если устроит работа только в IE и FF то используйте массив options объекта select. Например так:

var opt = new Option('text', 'value');
var sel = document.getElementById('login');

sel.options[sel.options.length] = opt;

   
 
 автор: Hammer.nv   (25.03.2007 в 18:20)   письмо автору
 
   для: mesos   (25.03.2007 в 18:17)
 

А как насчет выше написанного способа? Он рабочий?

   
 
 автор: mesos   (25.03.2007 в 18:28)   письмо автору
 
   для: Hammer.nv   (25.03.2007 в 18:20)
 

Да, полностью рабочий, проблемы могут возникать в браузере Opera, из-за того, что она принципиально не любит, когда пытаются что-то сделать с select`ами =)

   
 
 автор: Hammer.nv   (25.03.2007 в 18:31)   письмо автору
 
   для: mesos   (25.03.2007 в 18:28)
 

У меня в опере всё прекрасно :)

   
 
 автор: Hammer.nv   (25.03.2007 в 18:30)   письмо автору
 
   для: Hammer.nv   (25.03.2007 в 18:20)
 

Всем спасибо,я остановился на таком скрипте:
<SCRIPT type=text/javascript>
function add()
{
var tex = document.getElementById('text').value
var opt = new Option(tex, 'value');
var sel = document.getElementById('login');
sel.options[sel.options.length] = opt;
}
</script>

Может есть еще предложения?

   
 
 автор: mesos   (25.03.2007 в 18:40)   письмо автору
 
   для: Hammer.nv   (25.03.2007 в 18:30)
 

Пардон, просто вспомнил, какой ужас у меня начинался в Опере, когда потребовалось динамически создавать и удалять элементы в нескольких select`ах, в этом случае и приходится использовать вариант с удалением/созданием select`а.

   
 
 автор: CNT   (25.03.2007 в 18:35)   письмо автору
 
   для: Hammer.nv   (25.03.2007 в 17:51)
 

//IE6, FF2.0.0.3, Opera8.52
<script>
function myFunc ()
{
var t = document.createElement ("OPTION");
t.text = document.getElementById ('opText').value;
document.getElementsByName ('login') [0].options.add (t);
}
</script>

<select name="login" size="7">
<option></option>
</select>
<input id="opText">
<input type="button" value="Add option" onclick="myFunc ()">

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования