Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Javascript: объекты и переменные-алиасы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Ashotovich



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго времени суток.
Есть форма, в которой несколько объектов <select>, разделенных попарно. По изменению первого селекта из любой пары необходимо, чтобы функция (которая одна на всех) изменяла значение второго селекта из пары.
Проблема в том, что я не могу передать функции название селектов - тут требуются алиасы или что-то вроде этого. Приведу пример:
 

Код:
<script>Function ChangeSelectValue(select1, select2) {  
for (i=0; i<select1.value; i++) {  
select2.options[i].value=i+1;  
select2.options[i].text=i+1;}}</script>  
 
<form name="Form1">  
<select name="aaa" onchange='ChangeSelectValue("document.Form1.aaa","document.Form1.bbb")'>  
<option value="10">10  
<option value="20">20  
<option value="30">30</select>  
<select name="bbb"></select>  
</form>

 
Естественно, что приведенный пример не работает, но он показывает, чего бы хотелось добиться: передачи функции названий объектов для проведения операций над этими самыми объектами. Как это сделать (и можно ли это сделать вообще) - ума не приложу.
 
Заранее спасибо за помощь!  
 

Всего записей: 37 | Зарегистр. 22-12-2003 | Отправлено: 11:09 05-02-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ashotovich

Код:
<script>function ChangeSelectValue(select1, select2) {
for (i=0; i<parseInt(select1.options[select1.selectedIndex].value); i++) {
select2.options[i]=new Option()
select2.options[i].value=i+1;
select2.options[i].text=i+1;}}</script>
 
<form name="Form1">
<select name="aaa" onchange='ChangeSelectValue(this,document.Form1.bbb)'>
<option value="10">10
<option value="20">20
<option value="30">30</select>
<select name="bbb"></select>
</form>

 
Добавлено
1. функция объявлена неверно (в таком случае с маленькой буквы пишется... с большой — когда new Function юзается)
2. ты передаёшь не handler объекта, а строку ("document.Form1.bbb"...)
3. значение селекта — строка, а не число — parseInt'ить надо
4. select1.value существует?
5. select2.options[i] что-то без объявления new Option работать не хотит...

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 12:09 05-02-2004
Ashotovich



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, достаточно было вместо select2.options[i]=new Option() такое: select2.options.length=select1.value.
Насчет Function - очепятался просто =)))
 
Да, спасибо, все заработало! =))))

Всего записей: 37 | Зарегистр. 22-12-2003 | Отправлено: 14:10 05-02-2004 | Исправлено: Ashotovich, 14:17 05-02-2004
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Javascript: объекты и переменные-алиасы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru