Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.10.2010, 22:28
Новичок на форуме
Отправить личное сообщение для Ghost Посмотреть профиль Найти все сообщения от Ghost
 
Регистрация: 07.10.2010
Сообщений: 4

Автоматическое снятие выделения checkbox'ов
дравствуйте.

Подскажите, пожалуйста, почему не работает функция, которая по событию onclick должна выделять (с этим всё понятно), а затем снимать выделение (с этим проблема) с группы checkbox'ов.

var globvar = false;
 
 function checkForm(classname)
 {
   var select = document.getElementsByName(classname);
 
   for(i=0; i < select.length; i++)
   {
 
     if(select[i].type == 'checkbox')
     {
       select[i].checked = (!globvar) ? true : false; 
       globvar = (!globvar) ? true : false; 
     }
 
   }
 }


Как её откорректировать, чтобы она работала?
Буду признателен за помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 08.10.2010, 00:15
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Вынеси 13 строчку из цикла for
Ответить с цитированием
  #3 (permalink)  
Старый 10.10.2010, 21:03
Новичок на форуме
Отправить личное сообщение для Ghost Посмотреть профиль Найти все сообщения от Ghost
 
Регистрация: 07.10.2010
Сообщений: 4

Спасибо за совет, но не помогло.
Что-то ещё можно сделать?
Ответить с цитированием
  #4 (permalink)  
Старый 11.10.2010, 07:37
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

function checkForm(name) {
	checkForm.checked = !checkForm.checked;
	var nodes = document.getElementsByName(name);
	for (var i = 0; i < nodes.length; i++) {
		nodes[i].checked = checkForm.checked;
	}
}
Ответить с цитированием
  #5 (permalink)  
Старый 11.10.2010, 14:07
Новичок на форуме
Отправить личное сообщение для Ghost Посмотреть профиль Найти все сообщения от Ghost
 
Регистрация: 07.10.2010
Сообщений: 4

exec,

спасибо, но тоже не работает...
Ответить с цитированием
  #6 (permalink)  
Старый 11.10.2010, 15:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Ghost,
Может быть Вы полностью приведёте нерабочий код, но все подсказанные примеры при правильном использовании должны были сработать.
для примера :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title></title>
</head>
<body>
<form name="form" action="http://">
<input type="checkbox" name="" />
<input type="checkbox" name="" />
<input type="checkbox" name="" />
<input type="button" name="" value="go"  onclick="checkForm('form')"/>
</form>
<form name="form2" action="http://">
<input type="checkbox" name="" />
<input type="checkbox" name="" />
<input type="checkbox" name="" />
<input type="button" name="" value="go2"  onclick="checkForm('form2')"/>
</form>

<script language="JavaScript" type="text/javascript">
function checkForm(name) {
    var form = document.forms[name] ;
    form.globvar = !form.globvar;
    var a = form.getElementsByTagName('input');
    for (var i = 0; i < a.length; i++) if (a[i].type == "checkbox") a[i].checked = form.globvar
};
</script>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 13.10.2010, 20:04
Новичок на форуме
Отправить личное сообщение для Ghost Посмотреть профиль Найти все сообщения от Ghost
 
Регистрация: 07.10.2010
Сообщений: 4

Да, ваши примеры все рабочие. Я нашёл в чём у меня была ошибка.
<input type="checkbox" onclick="checkForm('check1')">
<input type="checkbox" onclick="checkForm('check2')">


Это checkbox'ы по событию которых запускается функция.
А это пример checkbox'ов, которые нужно выделять (к примеру):
<input type="checkbox" name="check1[]" value="1">
...
<input type="checkbox" name="check1[]" value="n">

<input type="checkbox" name="check2[]" value="1">
...
<input type="checkbox" name="check2[]" value="n">


Но дело в том, что мне нужно имя элементов именно в виде массива - для дальнейшей работы PHP-скрипта.
Подскажите, пожалуйста, как можно подправить функцию, чтобы выделялись именно элементы массива по его имени, переданному в функцию.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
установка позиции курсора или выделения в iframe mister_maxim Events/DOM/Window 5 18.04.2009 10:43