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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выделить все чекбоксы 
:(
    Опции темы
abalich
Дата 29.11.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

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



Код

<input type="checkbox" name="box" value="no">
<input type="checkbox" name="box_1" value="yes">
<input type="checkbox" name="box_2" value="yes">
<input type="checkbox" name="box_3" value="yes">
<input type="checkbox" name="box_4" value="yes">
 

Как мне при нажатии на box сделать выделеными все box_n
причем кол-во боксов box_n неограниченно от 1 до ....
?????


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
ksnk
Дата 29.11.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



К примеру - так
Код

<input type="checkbox" name="box" value="no" onchange='checkitall(this)'>


Код

function checkitall(el){
  var cntr=el.parentNode.getElementsByTagName('input');
  for(var i=0;i<cntr.length;i++){
    if(cntr[i]!=el)
    if(cntr[i].getAttribute('type')=='checkbox') {
       cntr[i].checked=el.checked
    }
  }
}



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
dsCode
Дата 29.11.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

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



а можно задать и id сродни Вашему name - id="box_n", где n - любое. Дальше также пройтись циклом и отчекать: document.getElementById('box' + i).checked = true;


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Castro
Дата 29.11.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 31.8.2007
Где: Украина

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



Код

function test()
{
var elemCount=document.getElementsByTagName('input');
for(var i=0;i<elemCount.length;i++)
    {
        (elemCount[i].checked=="true") ? (elemCount[i].checked="false") : (elemCount[i].checked="true");
            
    }
}

прицепляем его на первый нужный чекбокс


--------------------
user posted image
PM MAIL ICQ GTalk   Вверх
abalich
Дата 29.11.2007, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

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



ksnk, 
Код

function checkitall(el){
  var cntr=el.parentNode.getElementsByTagName('input');
  for(var i=0;i<cntr.length;i++){
    if(cntr[i]!=el)
    if(cntr[i].getAttribute('type')=='checkbox') {
       cntr[i].checked=el.checked
    }
  }
}

Собирает все input  элементы!
Он не посчитает <inpu type="submit" ?

Добавлено через 4 минуты и 55 секунд
Castro, там фишка в том 
Код

<input type="checkbox" name="box1" value="no">

<input type="checkbox" name="box_1" value="yes">
<input type="checkbox" name="box_2" value="yes">
<input type="checkbox" name="box_3" value="yes">
<input type="checkbox" name="box_4" value="yes">

<input type="checkbox" name="bo2x" value="no">

<input type="checkbox" name="box_5" value="yes">
<input type="checkbox" name="box_6" value="yes">
<input type="checkbox" name="box_7" value="yes">
<input type="checkbox" name="box_8" value="yes">

<input type="checkbox" name="box3" value="no">

<input type="checkbox" name="box_9" value="yes">
<input type="checkbox" name="box_10" value="yes">
<input type="checkbox" name="box_11" value="yes">
<input type="checkbox" name="box_12" value="yes">


при нажатии на box1 выделлились все с  box_1 до box_4
при нажатии на box2 выделлились все с  box_5 до box_8

при нажатии на box3 выделлились все с  box_9 до box_12
Но количествл boxов неизвестно в каждой группе!!

Добавлено через 7 минут и 59 секунд
Эти боксы выводдятся из базы данных при помощи PHP!


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
Castro
Дата 29.11.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 31.8.2007
Где: Украина

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



нет
Код

if(cntr[i].getAttribute('type')=='checkbox')

тут проверка на типность

Это сообщение отредактировал(а) Castro - 29.11.2007, 17:06


--------------------
user posted image
PM MAIL ICQ GTalk   Вверх
ksnk
Дата 29.11.2007, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(abalich @  29.11.2007,  16:56 Найти цитируемый пост)
при нажатии на box1 выделлились все с  box_1 до box_4
при нажатии на box2 выделлились все с  box_5 до box_8

при нажатии на box3 выделлились все с  box_9 до box_12
Но количествл boxов неизвестно в каждой группе!!

Присмотритесь к коду. Если обрамить группу вох'ов каки-м нибудь div'ом, будут чекаться только внутри этого дива


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
abalich
Дата 30.11.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

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



ksnk, ооо а как это сделать?????


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
ksnk
Дата 30.11.2007, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Код

<div>  <!-- это - одна группа чекбоксов -->
<input type="checkbox" name="box1" value="no">

<input type="checkbox" name="box_1" value="yes">
<input type="checkbox" name="box_2" value="yes">
<input type="checkbox" name="box_3" value="yes">
<input type="checkbox" name="box_4" value="yes">
</div>
<div> <!-- это - вторая группа чекбоксов -->
<input type="checkbox" name="bo2x" value="no">
</div>
<div> <!-- это - третья группа чекбоксов -->
<input type="checkbox" name="box_5" value="yes">
<input type="checkbox" name="box_6" value="yes">
<input type="checkbox" name="box_7" value="yes">
<input type="checkbox" name="box_8" value="yes">

<input type="checkbox" name="box3" value="no">

<input type="checkbox" name="box_9" value="yes">
<input type="checkbox" name="box_10" value="yes">
<input type="checkbox" name="box_11" value="yes">
<input type="checkbox" name="box_12" value="yes">
</div>



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
abalich
Дата 30.11.2007, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

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



ksnk, Как это в HTML объеденить я знаю. А как на Javascript это сделать ??


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
ksnk
Дата 30.11.2007, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(abalich @  29.11.2007,  16:56 Найти цитируемый пост)
Эти боксы выводдятся из базы данных при помощи PHP!

а PHP знает, какие группы чекбоксов будут? Эти самые дивы можно было бы им и расставлять. 

Если "нужно сделать на JS", то только тупой бег по сиблингам... если все "подчиненные" боксы имеют имя вида box_XXX, а управляющие - без подчеркивания - вот вам и алгоритм...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
abalich
Дата 1.12.2007, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

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



ksnk, ты мне на примере покажи. PHP все знает.
Код

<div>  <!-- это - одна группа чекбоксов -->
<input type="checkbox" name="box1" value="no">

<input type="checkbox" name="box_1" value="yes">
<input type="checkbox" name="box_2" value="yes">
<input type="checkbox" name="box_3" value="yes">
<input type="checkbox" name="box_4" value="yes">
</div>
<div> <!-- это - вторая группа чекбоксов -->
<input type="checkbox" name="bo2x" value="no">
</div>
<div> <!-- это - третья группа чекбоксов -->
<input type="checkbox" name="box_5" value="yes">
<input type="checkbox" name="box_6" value="yes">
<input type="checkbox" name="box_7" value="yes">
<input type="checkbox" name="box_8" value="yes">

<input type="checkbox" name="box3" value="no">

<input type="checkbox" name="box_9" value="yes">
<input type="checkbox" name="box_10" value="yes">
<input type="checkbox" name="box_11" value="yes">
<input type="checkbox" name="box_12" value="yes">
</div>




--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
ksnk
Дата 2.12.2007, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(abalich @  1.12.2007,  22:33 Найти цитируемый пост)
ksnk, ты мне на примере покажи. PHP все знает.

Цитата(ksnk @  30.11.2007,  23:57 Найти цитируемый пост)
а PHP знает, какие группы чекбоксов будут?


Код

echo ('div');
for(...){
...  // тут определяем - какое имя получит выводимый box
  if (!preg_match('/^box_/i',$name)) // это - начало нового блока?
    printf('</div><div><input type="checkbox" onclick="checkitall(this)" name="%s" value="%s">',$name,'no');
  else
    printf('<input type="checkbox" name="%s" value="%s">',$name,'yes');
} 
echo('</div>');
Или все еще не понятно ? smile

можно решить это-же на JS. Нужно?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
abalich
Дата 3.12.2007, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

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



ksnk, там все сложнее.
Я потом из этих боксов собираю инфу и т.д.
Ты мне просто покажи на примере
Код

<div>  <!-- это - одна группа чекбоксов -->
<input type="checkbox" name="box1" value="no">

<input type="checkbox" name="box_1" value="yes">
<input type="checkbox" name="box_2" value="yes">
<input type="checkbox" name="box_3" value="yes">
<input type="checkbox" name="box_4" value="yes">
</div>
<div> <!-- это - вторая группа чекбоксов -->
<input type="checkbox" name="bo2x" value="no">
<input type="checkbox" name="box_5" value="yes">
<input type="checkbox" name="box_6" value="yes">
<input type="checkbox" name="box_7" value="yes">
<input type="checkbox" name="box_8" value="yes">
</div>
<div> <!-- это - третья группа чекбоксов -->
<input type="checkbox" name="box3" value="no">
<input type="checkbox" name="box_9" value="yes">
<input type="checkbox" name="box_10" value="yes">
<input type="checkbox" name="box_11" value="yes">
<input type="checkbox" name="box_12" value="yes">
</div>



Это сообщение отредактировал(а) abalich - 3.12.2007, 12:44


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
ksnk
Дата 3.12.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Эээ... Ты про это?  
Код

<head>
<script  type="text/javascript">
function checkitall(el){
  if (!el && !el.parentNode)return ;
  var cntr=el.parentNode.getElementsByTagName('input');
  
  for(var i=0;i<cntr.length;i++){
    if(cntr[i]!=el)
    if(cntr[i].getAttribute('type')=='checkbox') {
       cntr[i].checked=el.checked
    }
  }
}

</script>
</head><body >

<div>  <!-- это - одна группа чекбоксов -->
<input type="checkbox" name="box1"  onchange='checkitall(this)' value="no">

<input type="checkbox" name="box_1" value="yes">
<input type="checkbox" name="box_2" value="yes">
<input type="checkbox" name="box_3" value="yes">
<input type="checkbox" name="box_4" value="yes">
</div>
<div> <!-- это - вторая группа чекбоксов -->
<input type="checkbox" name="bo2x" value="no"  onchange='checkitall(this)'>
<input type="checkbox" name="box_5" value="yes">
<input type="checkbox" name="box_6" value="yes">
<input type="checkbox" name="box_7" value="yes">
<input type="checkbox" name="box_8" value="yes">
</div>
<div> <!-- это - третья группа чекбоксов -->
<input type="checkbox" name="box3" value="no"  onchange='checkitall(this)'>
<input type="checkbox" name="box_9" value="yes">
<input type="checkbox" name="box_10" value="yes">
<input type="checkbox" name="box_11" value="yes">
<input type="checkbox" name="box_12" value="yes">
</div>

</body>

Кстати, атрибут value у чекбокса не используется... вместо него нужно пользовать атрибут checked 



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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