Javascript.RU

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

не могу открыжить все чекбоксы нажатием одного
Всем доброго времени суток)
У меня проблема - не могу открыжить все чекбоксы при нажатии одного сверху (пример как на майле сделано - можешь открыжить все письма, если поставишь крыжик сверху)...у меня динамический список этих самых чекбоксов (которые надо открыжить) и всегда в верхней строчке таблицы рисуется этот главный чекбокс ...все чекбоксы имеют id которое мне известно (от 1 до 24)...и вот что я написала:
Код:
                                      <script>
                                        <!--
                                        document.write('<input 
                name=sel[] 
                type=checkbox 
                value='+'0'+' 
                onclick='+'\"'+'var n=1; for (n=1; n<=3; n++)
                                         {
                                           document.getElementByID(n)=n.checked;
                                         };'+'\"'+'\/>'
                                                       ); 
                                        // -->
                                      </script>
и ничего не работает :cry: ...даже этот главный чекбокс не отображается...помогите пожалуйста...
заранее всем очень благодарна
Ответить с цитированием
  #2 (permalink)  
Старый 28.10.2009, 09:32
Аватар для Krondor
Интересующийся
Отправить личное сообщение для Krondor Посмотреть профиль Найти все сообщения от Krondor
 
Регистрация: 29.12.2008
Сообщений: 23

я решил подобную проблему следующим образом:
Код:
function checkall() {
	var val=0;
	if (document.getElementById("all").checked == 1) {val = 1;}
	var id = '';
	for (n=1; n<=5; n++) {
		id = n;
		document.getElementById(id).checked = val;
	}
	return false;
}
и соотвественно на главный чекбокс вешается на onClick данная функция.

и еще: не работать может потому, что у тебя написано getElementByID, попробуй последнюю букву сделать маленькой, как в моем примере. на сколько я заметил javascript очень капризный язык и одна буква в неправильном регистре может послужить проблемой на целых два дня.

Последний раз редактировалось Krondor, 28.10.2009 в 09:34.
Ответить с цитированием
  #3 (permalink)  
Старый 28.10.2009, 19:24
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от Krondor Посмотреть сообщение
на сколько я заметил javascript очень капризный язык и одна буква в неправильном регистре может послужить проблемой на целых два дня.
Логично. AAA и aaa - две разные переменные. Case-sensitive, однако.
Ответить с цитированием
  #4 (permalink)  
Старый 28.10.2009, 20:38
Профессор
Отправить личное сообщение для alexKniaz Посмотреть профиль Найти все сообщения от alexKniaz
 
Регистрация: 14.10.2008
Сообщений: 186

Если можно сделать все чекбоксы одного класса, то можно так:
<script type="text/javascript">
function myGetElementsByClassName(class){
var arr=document.getElementsByTagName('*');
var res=new Array();
for(i=0;i<arr.length;i++){
if(arr.item(i).className==class){
res.push(arr.item(i));
}
}
return res;
}
 
function chkclick(obj){
var arr=myGetElementsByClassName('checker');
for(i=0;i<arr.length;i++){
arr[i].checked=obj.checked;
}
}
</script>
<input type="checkbox" onclick="chkclick(this);">Мейн-бокс<br />
<input type="checkbox" class="checker"><br />
<input type="checkbox" class="checker"><br />
<input type="checkbox" class="checker"><br />
<input type="checkbox" class="checker"><br />
Ответить с цитированием
  #5 (permalink)  
Старый 29.10.2009, 09:16
Аватар для Krondor
Интересующийся
Отправить личное сообщение для Krondor Посмотреть профиль Найти все сообщения от Krondor
 
Регистрация: 29.12.2008
Сообщений: 23

Сообщение от e1f Посмотреть сообщение
Логично. AAA и aaa - две разные переменные. Case-sensitive, однако.
не только с переменными проблема.. я целый день ловил глюк, написав selectedindex вместо selectedIndex. с тех пор стараюсь никогда про case-sensitive не забывать.
Ответить с цитированием
  #6 (permalink)  
Старый 24.11.2009, 18:32
Аспирант
Отправить личное сообщение для Zzet Посмотреть профиль Найти все сообщения от Zzet
 
Регистрация: 29.07.2009
Сообщений: 34

alexKniaz Хороший у Вас код, но можно ли сделать так, чтоб он и в ИЕ работал?
Ответить с цитированием
  #7 (permalink)  
Старый 24.11.2009, 19:07
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Отличная идея использовать классы, чтобы выделить элементы.
Однако, исполнение несколько хромает:

Не забывайте, что у браузера уже может быть родной метод document.getElementsByClassName, который работает на два порядка шустрее, чем пребор документа. А может и не быть.

Не забывайте, что у элемента может быть несколько классов. Так что проверка
element.className == class
верна далеко не всегда. Лучше использовать
var classRegExp = new RegExp("(^|\\s)+" + class + "(\\s|$)+");
classRegExp.test(element.className)
Ответить с цитированием
  #8 (permalink)  
Старый 24.11.2009, 19:15
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Zzet
чтоб он и в ИЕ работал?
На class ругается? Переименуйте во что-нибудь другое, это зарезервированное имя.
Ответить с цитированием
  #9 (permalink)  
Старый 24.11.2009, 19:41
Новичок на форуме
Отправить личное сообщение для мертвыеживотные Посмотреть профиль Найти все сообщения от мертвыеживотные
 
Регистрация: 24.11.2009
Сообщений: 2

для выборки целевых чекбоксов вместо атрибута class лучше юзать name.
Ответить с цитированием
  #10 (permalink)  
Старый 24.11.2009, 22:55
Аспирант
Отправить личное сообщение для Zzet Посмотреть профиль Найти все сообщения от Zzet
 
Регистрация: 29.07.2009
Сообщений: 34

Octane, ни на что не ругается. Просто не работает
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37