Помогите с javascript переменными @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 10 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
kr1
новый человек
21
Сообщения: 65
Зарегистрирован: 18.12.05
Заголовок сообщения: Помогите с javascript переменными
Сообщение Добавлено: 19 Ноябрь 2006, 21:22:00 
Всем привет. Ползаю по инету не могу найти решение. Не знаю как свойству (forms, elements и другим из серии document) присвоить переменную. Чтобы было понятно приведу пример:

В общем у меня есть следующие скрипт, который делает Radio Button с именем addlink1063 и номером 0, checked при нажатии на URL, засчет срабатывания строки:

Код:
document.addlinkp.addlink1063[0].click();



Так как радиобаттанов у меня на странице много, то мне нужно построить функцию, при обращении, к которой два параметра addlink1063 (имя радиобаттона) и [0] (номер радибаттона) подставлялись бы и были динамическими
document.addlinkp.>хочу вставить сюда переменную<.click();

Попробовал так:

Пример №1 не работающий, где к примеру Name=addlink1063, i=0


Код:
function (name,i) {  document.addlinkp.name[i].click();  }



Параметры не подставляются в name[i]


Пример №2 работает, но только одна переменная с индексом Радиботтона


Код:
function (i) {  document.addlinkp.addlink1063[i].click();  }



Где моя ошибка в примере №1?
Жду вашей помощи, как заменить свойство в javascripte переменной.
Большое спасибо!
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 19 Ноябрь 2006, 21:45:44 
Дай им всем разные id и живи спокойно.
kr1
новый человек
21
Сообщения: 65
Зарегистрирован: 18.12.05
Сообщение Добавлено: 19 Ноябрь 2006, 23:23:40 

Crazy писал(а):
Дай им всем разные id и живи спокойно.


Так и сделал. Присвоил каждому разный id И обращался к радио кнопкам через
function selectbuts(my_id) {
document.getElementById(my_id).checked=true;
return false;
}
Iliasaur Муж.
новый человек
9
Сообщения: 88
Зарегистрирован: 10.05.06
Откуда: Иваново
Сообщение Добавлено: 21 Ноябрь 2006, 08:07:14 
А если вот так:
Код:
function foo(formname, varname){eval('document.'+ formname + '.' + varname + '.click();');}

Здесь в formname передается имя формы, в которой находится RadioButton, а varname - имя самого button'а
kr1
новый человек
21
Сообщения: 65
Зарегистрирован: 18.12.05
Сообщение Добавлено: 22 Ноябрь 2006, 00:50:23 
Iliasaur, спасибо за решение. Возьму на заметку.
gro
новый человек
17
Сообщения: 43
Зарегистрирован: 09.09.06
Сообщение Добавлено: 22 Ноябрь 2006, 22:08:34 

Iliasaur писал(а):
eval('document.'+ formname + '.' + varname + '.click();');}


Вообще-то гораздо более по-человечески это делается так:
Код:
document.formname[ varname ].click()

По-человечески в плане доступа к свойству объекта, а не использования устаревшего синтаксиса доступа к элементам страницы.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 22 Ноябрь 2006, 23:14:15 
gro, твой вариант лучше не только потому, что не страдает извращениями. Он лучше потому, что извращенный вариант с eval будет тупо давать ошибки на некоторых именах.

Пример как надо и как не надо:

Код:
<form name="main">
<input name="option[1]" type="radio">1<br>
<input name="option[2]" type="radio">2<br>
<input name="option[3]" type="radio">3<br>
<input name="option[4]" type="radio">4<br>
<button onClick="formname = 'main'; varname = 'option[2]'; document[formname][varname].click();">Select option 2</button>
<button onClick="formname = 'main'; varname = 'option[3]'; eval('document.'+ formname + '.' + varname + '.click();');">Select option 3</button>
</form>


Жеающие могу сбросить в файл и покликать самостоятельно.

Мораль: будьте проще и люди к вам потянуться. :)
Iliasaur Муж.
новый человек
9
Сообщения: 88
Зарегистрирован: 10.05.06
Откуда: Иваново
Сообщение Добавлено: 23 Ноябрь 2006, 07:11:50 
Да, без eval действительно удобнее
kr1
новый человек
21
Сообщения: 65
Зарегистрирован: 18.12.05
Сообщение Добавлено: 24 Ноябрь 2006, 17:30:29 
Crazy, тогда какой лучше способ через document.formname[ varname ].click() или через id c getelementbyid?
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 24 Ноябрь 2006, 17:49:28 
Лично я предпочитаю через getelementbyid.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 10 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100