Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> включить RadioGroup при нажатии на checkbox 
V
    Опции темы
igorold
Дата 6.7.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 2
Всего: 17



ну как вариант:
Код

  for(i=11;i<14;i++) {
    document.getElementById('R'+i).disabled = true;
  }
 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
ОнКофе
Дата 6.7.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Да здорово все!!!!
Теперь вот никак не могу догнать что:
в таком виде работает:
Код

<script>
function on123(f,Bx,Ey,N,NId,n)    
{    
 if (f.C123.checked==true){    
for(i=Bx;i<Ey;i++){
document.getElementById(N+i).disabled = false;}
document.getElementById(NId).checked = true;}    
 else{    
for(i=Bx;i<Ey;i++){
document.getElementById(N+i).disabled = true;
document.getElementById(N+i).checked = false;}
 }    
}
</SCRIPT>
<FORM name="F1">
<INPUT type="radio" name="RadioGroup1" id="R11" disabled><br>    
<INPUT type="radio" name="RadioGroup1" id="R12" disabled><br>    
<INPUT type="radio" name="RadioGroup1" id="R13" disabled><br>    
<br><br>    
<INPUT name="C123" type="checkbox" onClick="on123(this.form,11,14,'R','R12');"> скрытие    
<br><br>
</FORM>

все хорошо и отлично но когда я добавлю еще немного:
Код

<script>
function on123(f,Bx,Ey,N,NId,n)    
{    
 if (f.C123.checked==true){    
for(i=Bx;i<Ey;i++){
document.getElementById(N+i).disabled = false;}
document.getElementById(NId).checked = true;}    
 else{    
for(i=Bx;i<Ey;i++){
document.getElementById(N+i).disabled = true;
document.getElementById(N+i).checked = false;}
 }    
}
</SCRIPT>
<FORM name="F1">
<INPUT type="radio" name="RadioGroup1" id="R11" disabled><br>    
<INPUT type="radio" name="RadioGroup1" id="R12" disabled><br>    
<INPUT type="radio" name="RadioGroup1" id="R13" disabled><br>    
<br><br>    
<INPUT name="C123" type="checkbox" onClick="on123(this.form,11,14,'R','R12');"> скрытие    
<br><br><br><br>
<INPUT type="radio" name="RadioGroup2" id="R21" disabled><br>    
<INPUT type="radio" name="RadioGroup2" id="R22" disabled><br>    
<INPUT type="radio" name="RadioGroup2" id="R23" disabled><br>    
<INPUT type="radio" name="RadioGroup2" id="R24" disabled><br>    
<br><br>    
<INPUT name="B456" type="checkbox" onClick="on123(this.form,21,25,'R','R24');"> скрытие
</FORM>


то естестевнно не работает.... понимаю что нужно передать параметр <INPUT name="B456" но не понимаю как.. перепробовал кучу вариантов не получилось...
Есть идеи?
 
PM MAIL WWW   Вверх
igorold
Дата 6.7.2006, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 2
Всего: 17



тогда передавай состояние checkbox-а:
Код

<INPUT name="C123" type="checkbox" onClick="on123(this.form.C123.checked, ......);"> скрытие<br>
а функция будет:
Код

function on123(f, .......)
{
 if (f==true)
.................


Добавлено @ 12:03 
вообще - можешь посетить хороший сайтик, может найдешь готовое решение ... хотя для опыта иногда лучше самому помучиться писать скрипты ... 

образцы скриптов 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
ОнКофе
Дата 6.7.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Думаю что готовое решение уже найдено!!!
Вот что получилось....
Код

<script>
function on123(f,Bx,Ey,N,NId){    
if (f==true){    
for(i=Bx;i<Ey;i++){
document.getElementById(N+i).disabled = false;}
document.getElementById(NId).checked = true;}    
 else{    
for(i=Bx;i<Ey;i++){
document.getElementById(N+i).disabled = true;
document.getElementById(N+i).checked = false;}}    
}
</SCRIPT>
<FORM name="F1">
<INPUT type="radio" name="RG1" id="R11" disabled><br>    
<INPUT type="radio" name="RG1" id="R12" disabled><br>    
<INPUT type="radio" name="RG1" id="R13" disabled><br>    
<br><br>    
<INPUT name="C123" type="checkbox" onClick="on123(this.form.C123.checked,11,14,'R','R12');"> скрыть / открыть    
<br><br>
<INPUT type="radio" name="RG2" id="B21" disabled><br>    
<INPUT type="radio" name="RG2" id="B22" disabled><br>    
<INPUT type="radio" name="RG2" id="B23" disabled><br>
<INPUT type="radio" name="RG2" id="B24" disabled><br>    
<br><br>    
<INPUT name="B456" type="checkbox" onClick="on123(this.form.B456.checked,21,25,'B','B23');"> скрыть / открыть    
</FORM>


Все работает и в FireFox тоже!!! 
Может быть есть какие-то замечания??? 
PM MAIL WWW   Вверх
igorold
Дата 6.7.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 2
Всего: 17



а что у тебя должно быть в 10-й строке:
Код

...........
document.getElementById(N+i).checked = false;}}
............

N+i  или Nid 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
ОнКофе
Дата 6.7.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



igorold, 
N+i должно быть - это когда мы второй раз нажимаем на checkbox (чтобы сделать недоступными радиокнопки), чтобы все радио очищались...
а в шестой строке
Код

document.getElementById(NId).checked = true;}

NId - это номер id радиокнопки, для того чтобы когда мы нажимаем на checkbox именно эта радиокнопка была выбрана
На примере же видно что в первом случае при нажатии на checkbox активная 2(средняя) радиокнопка, а при нажатии на второй checkbox активна 3 (сверху) радиокнопка..... вот. 
PM MAIL WWW   Вверх
igorold
Дата 6.7.2006, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 2
Всего: 17



все ... понял, в скобках запутался - неудобно смотреть твой код .... вот так было бы понятнее:
Код

function on123(f,Bx,Ey,N,NId)
{    
  if (f==true)
  {    
    for(i=Bx;i<Ey;i++) { document.getElementById(N+i).disabled = false; }
    document.getElementById(NId).checked = true;
  }    
  else
  {    
    for(i=Bx;i<Ey;i++)
    {
      document.getElementById(N+i).disabled = true;
      document.getElementById(N+i).checked = false;
    }
  }    
}
 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
ОнКофе
Дата 6.7.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



Немного осложнил задачу.....

Код

<script>
function OnOff(f,Bx,Ey,N,NId){    
 if (f==true){    
for(i=Bx;i<Ey;i++){
document.getElementById(N+i).disabled = false;}
document.getElementById(NId).checked = true;}    
 else{    
for(i=Bx;i<Ey;i++){
document.getElementById(N+i).disabled = true;
document.getElementById(N+i).checked = false;}}    
}

function All(f){
 if (f==true){
Form1.B1.checked = true;
Form1.B2.checked = true;
 }
 else
 {
Form1.B1.checked = false;
Form1.B2.checked = false;
 }     
}
</SCRIPT>
<FORM name="Form1">
<INPUT name="A" type="checkbox" onClick="
All(this.form.A.checked);
OnOff(this.form.B1.checked,11,14,'R','R12');
OnOff(this.form.B2.checked,21,25,'B','B23');"> скрыть ВСЕ/ открыть ВСЕ<br><br>

<INPUT name="B1" type="checkbox" onClick="OnOff(this.form.B1.checked,11,14,'R','R12');"> скрыть / открыть<br>
<INPUT type="radio" name="RG1" id="R11" disabled><br>    
<INPUT type="radio" name="RG1" id="R12" disabled><br>    
<INPUT type="radio" name="RG1" id="R13" disabled><br><br><br>    
<INPUT name="B2" type="checkbox" onClick="OnOff(this.form.B2.checked,21,25,'B','B23');"> скрыть / открыть<br>
<INPUT type="radio" name="RG2" id="B21" disabled><br>    
<INPUT type="radio" name="RG2" id="B22" disabled><br>    
<INPUT type="radio" name="RG2" id="B23" disabled><br>
<INPUT type="radio" name="RG2" id="B24" disabled><br><br><br>    
</FORM>


Есть идеи как можно сделать функцию function All(f) более компактной??? Ведь если мне нужно сделать неактивными несколько CheckBox'ов получится что-то вроде:
Код

function All(f){
 if (f==true){
Form1.B1.checked = true;
Form1.B2.checked = true;
Form1.B3.checked = true;
Form1.B4.checked = true;
Form1.B5.checked = true;
Form1.B6.checked = true;
 }
 else
 {
Form1.B1.checked = false;
Form1.B2.checked = false;
Form1.B3.checked = false;
Form1.B4.checked = false;
Form1.B5.checked = false;
Form1.B6.checked = false;
 }     
}


Как быть? 
PM MAIL WWW   Вверх
igorold
Дата 7.7.2006, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 2
Всего: 17



Как вариант так:
Код

function All(f)
{
  if (f==true) { for(i=1;i<7;i++)  { eval("Form1.B"+i+".checked")  = true; } }
  else { for(i=1;i<7;i++)  { eval("Form1.B"+i+".checked") = false; } }
}

но есть более универсальные варианты, типа перебирать все элементы формы с типом checkbox
но у меня не так много знаний, чтобы это написать ...   

Это сообщение отредактировал(а) igorold - 7.7.2006, 06:45


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
ОнКофе
Дата 7.7.2006, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



что-то не работат! 
PM MAIL WWW   Вверх
igorold
Дата 7.7.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 2
Всего: 17



Вот так работает, где аргумент Form --> this.form в вызываемой программе
Код

function All(f,Form)
{
  if (f==true) { for(i=1;i<7;i++)  { eval("Form.B"+i+".checked  = true"); } }
  else { for(i=1;i<7;i++)  { eval("Form.B"+i+".checked = false"); } }
}
 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
ОнКофе
Дата 7.7.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



не работает.... перестали подсвечиваться RadioGroup....
Как быть-то? 

Это сообщение отредактировал(а) ОнКофе - 7.7.2006, 16:18
PM MAIL WWW   Вверх
ОнКофе
Дата 7.7.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 3.3.2006
Где: http://www.angeli na-pitt.by.ru

Репутация: нет
Всего: нет



все догнал!!!
Код

<script>
function All(f){
 if (f==true){
for (i=1; i<3; i++)
{eval('document.all.'+'B'+i+'.checked=true');
}
 }
 else
 {for (i=1; i<3; i++)
{eval('document.all.'+'B'+i+'.checked=false');}
 }     
}
</SCRIPT>
 
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1019 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.