Программирование > JavaScript & JScript

Проблема с checkbox\'ом

(1/1)

Altum:
Ребят! Не могу никак решить одну проблему. Уже второй день бьюсь над ней. Я в JavaScript\'e не очень! Поэтому не исключаю, что собака рядом зарыта!
И так. Есть страничка. На ней есть несколько checkbox\'ов (кол-во переменное). Этих checkbox\'ов две группы. У каждой группы есть один главный checkbox, при отметки которого отмечается вся группа. С первой группой у меня всё хорошо! А вот со второй проблема. Вроде всё одинаковое, но во второй группе все выделить одним checkbox\'ом не получается
Вот листинг:





   function selectCatAll(){
      for(i=1; i

brainkiller:
Мил человек! Ты в итерациях покопайся внимательнее - у тебя ж "i" прирастает от 1 до количества элементов формы, а нумерация в идентификаторах посередине разорвана и начинается сначала.

А вот если заменить brand1 на brand5 и т.д... ))

Кстати, здесь можно обойтись одной функцией вместо двух:

function selectCatAll(nn){
for(i=1; i

Altum:
brainkiller
Спасибо за ответ!
А можно ли итерацию с начала начать? Просто, код я представил условный. На самом деле в "catn" и "brandn" "n" прописывается php-функцией (притом, у каждого своё "n") и сколько этого "n" будет не известно заранее.



--- Цитировать ---Кстати, здесь можно обойтись одной функцией вместо двух:
--- Конец цитаты ---

Я пробовал, но у меня не получилось. И теперь я понимаю почему: я id использовал с приставкой "_all". Если её убрать, то всё работает. А почему с ней не работает?

html_coder:

--- Цитировать ---Altum:
А можно ли итерацию с начала начать?
--- Конец цитаты ---


Можно, а в чём проблема? Обнулил переменную и вперед.


--- Цитировать ---Altum:
Я пробовал, но у меня не получилось. И теперь я понимаю почему: я id использовал с приставкой "_all".
--- Конец цитаты ---


Да и почему ты использовал id c приставкой _all? )))

А я попробовал у меня получилось



<html>
<head>
<script language="JavaScript">
function selectCheckboxesGroup(group_name /*префикс группы чекбоксов*/, main_checkbox_id /*ID главного чекбокса, который поджигает остальные*/)
{
var form = document.forms[\'formName\']; //Форма
var main_checkbox = document.getElementById(main_checkbox_id); //Чекбокс, который включает остальные чекбоксы
for([B]var[/B] i = 1; i < form.elements.length; i++) //Проходимся по всем элекментам формы
{
//Отмечаем только те чекбоксы, которые принадлежат нужной группе
if(form.elements[i].name.indexOf(group_name) != -1)
{
form.elements[i].checked = main_checkbox.checked;
}
}
}
</script>
</head>

<body style="margin-top:0pt;margin-left:1pt;color:#666666">
<form name="formName" action="index.php" method="GET">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<input id="cat_all" name="cat_all" type="checkbox" OnClick="selectCheckboxesGroup(\'cat\', \'cat_all\')">
</td>
<td>
<input id=\'cat1\' name="cat_7" type="checkbox">
</td>
<td>
<input id=\'cat2\' name="cat_3" type="checkbox">
</td>
<td>
<input id=\'cat3\' name="cat_1" type="checkbox">
</td>

<td>
<input id="brand_all" name="brand_all" type="checkbox" OnClick="selectCheckboxesGroup(\'brand\', \'brand_all\')">
</td>
<td>
<input id=\'brand1\' name="brand_7" type="checkbox">
</td>
<td>
<input id=\'brand2\' name="brand_1" type="checkbox">
</td>
<td>
<input id=\'brand3\' name="brand_13" type="checkbox">
</td>
</tr>
</table>
</form>
</body>
</html>


Обрати внимание на выделенную жирным шрифтом конструкцию var i, так вот внутри функции желательно делать именно так, иначе переменная будет определена в глобальном контексте.


--- Цитировать ---Altum:
Просто, код я представил условный. На самом деле в "catn" и "brandn" "n" прописывается php-функцией (притом, у каждого своё "n") и сколько этого "n" будет не известно заранее.
--- Конец цитаты ---



Как ты понимаешь сам, теперь абсолютно все равно чем прописывается n, функция будет работать корректно!


--- Цитировать ---Altum:
Я в JavaScript\'e не очень!
--- Конец цитаты ---


Чтобы быть немного лучше можно почитать например здесь http://developer.mozilla.org/en/docs/JavaScript

Altum:
html_coder
Спасибо большое! Всё получилось! Немного начинаю понимать JavaScript. И в этом немного помогло ещё написание одной программы в Delphi.

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии