Вход

Просмотр полной версии : Где ошибка не пойму


Алексей
30.09.2008, 12:14
Такой скриптик для выделения определенной группы checkbox.Что то не пашет. Помогите разобраться.
function ckeck_uncheck(id) {
switch (id) {
case 1:
a=1;
b=6;
c=master_box1;
break;
case 2:
a=7;
b=12;
c='master_box2';
break;
case 3:
a=11;
b=18;
c='master_box3';
break;
case 4:
a=19;
b=23;
c='master_box4';
break;
case 5:
a=24;
b=25;
c='master_box5';
break;
case 6:
a=26;
b=35;
c='master_box6';
break;
case 7:
a=36;
b=50;
c='master_box7';
break;
case 8:
a=51;
b=62;
c='master_box8';
break;
case 9:
a=63;
b=69;
c='master_box9';
break;
case 10:
a=70;
b=74;
c='master_box10';
break;
default:
a=0;
b=0;
}
var frm = document.form.master_box1;
for (var i=a;i<b;i++)
{
var elmnt = frm.elements[i];
if (elmnt.type=='checkbox') {
if(frm.checked == true){ elmnt.checked=false; }
else{ elmnt.checked=true; }
}
}
if(frm.checked == true){ frm.c.checked = false; }
else{ frm.checked = true; }
}

ZoNT
30.09.2008, 12:18
и какие ошибки выдаёт?

Алексей
30.09.2008, 12:28
Пробывал и с переменной "c" и с "frm". Не пашет. Не выделяет всю группу.

ZoNT
30.09.2008, 12:29
ну так скрипт древний. Почитай про методы DOM.

Алексей
30.09.2008, 12:34
Да. Если ввести будет работать, но с одной группой.
var frm = document.form;
for (var i=a;i<b;i++)
{
var elmnt = frm.elements[i];
if (elmnt.type=='checkbox') {
if(frm.master_box1.checked == true){ elmnt.checked=false; }
else{ elmnt.checked=true; }
Как изменить переменную frm или вствить frm.c.etc.... чтоб работало со многими группами птичек.
А что такое DOM? И чем он мне поможет?

ZoNT
30.09.2008, 12:35
а трудно в поиске набрать DOM?

Алексей
30.09.2008, 13:42
Долго я разберался с этой умной аббревиатурой. И ничего полезного она мне не принесла.
Итак.
Имеются свойства объекта и методы checkbox:
1. checkboxName.propertyName
2. checkboxName.methodName (parameters)
3. formName.elements [index] .propertyName
4. formName.elements[index].methodName(parameters)

В моем случае вот что.
1. CheckboxName.checked

Проблема в frm.{КАК ПОМЕНЯТЬ ЗДЕСЬ ИМЯ ПТИЧКИ}.checked
До этого было вот так frm.master_box.checked и работало только для master_box
а мне надо для 10 таких

ZoNT
30.09.2008, 14:14
frm['master_box'].checked

Алексей
30.09.2008, 14:57
Вот теперь все работает.А через getElementById пытался выпендриться. Спасибо тебе ZoNT.