Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / checkbox "промежуточные значения" javascript / 16 сообщений из 16, страница 1 из 1
05.05.2008, 16:27
    #35294879
Lub
Lub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
Народ, я что-то сильно туплю. Есть в форме группа чекбоксов, задача проста, наверное, но я могу ее реализовать. Чайник, он и в африке... При выборе любых 2-х чекбоксов надо отметить "промежуточные" и задисейблить их.
Не могу "выловить" эти промежуточные.
Кусок кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
for(var i= 0 ,check=d.getElementsByTagName('INPUT'),checksum= 0 ; i<check.length;i++) {
        if((check[i].checked)&&(!check[i].disabled))
		{checksum+= 1 );}/*подсчет отмеченных чекбоксов*/
		if((check[i].checked)&&(check[i].disabled)){checkdis=true;}
		}/*среди отмеченных есть нередактируемые*/
 if((checksum== 2 ) &&(!checkdis))
	{ for /*от 1-ого до 2-ого(????) у меня ступор*/
                 {check[i].checked;
                   check[i].disabled=true;
        }
                          

                   }
Если можно ссылочку или небольшой пример, куда копать...
...
Рейтинг: 0 / 0
05.05.2008, 16:48
    #35294968
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
Вот корень зла
Код: plaintext
getElementsByTagName
Используй id-элементов!

Сделай тестовый пример странички - на нем тебе будет легче объяснять, а нам показывать...
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
05.05.2008, 17:34
    #35295150
Lub
Lub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<html> 
<head> 
<body> 
<script type="text/javascript"> 
(d=document).onclick=function tst(evt) 
{ 
evt=evt||event; 
if((checkObj=d.all?evt.srcElement:evt.target).tagName!='INPUT')return;   
  if(checkObj.type!='checkbox')return; 
  else{ 
checkdis=false;
    for(var i= 0 ,check=d.getElementsByTagName('INPUT'),checksum= 0 ; i<check.length;i++) {
        if((check[i].checked)&&(!check[i].disabled)){alert(checksum+= 1 );}
		if((check[i].checked)&&(check[i].disabled)){checkdis=true;}
		}
 if((checksum== 2 ) &&(!checkdis))
	{ 	//
	alert("обработка данного критерия");
			}else{
if((checksum<= 2 ) && (checkdis))
	{ 	for(var j= 0 ; j<check.length;i++) 
		{if((check[j].checked)&&(check[j].disabled)){check[j].checked=false; check[j].disabled=false}
		}

	}}
  } 
} 
</script> 
<form method="POST" action="my.pl">  
<input type="hidden" name="smth" value="var" />  
<input type="checkbox" name="my[]" id="n1" value="3">что-то там  1 <br> 
<input type="checkbox" name="my[]" id="n2" value="2">что-то там  2 <br> 
<input type="checkbox" name="my[]" id="n3" value="3">что-то там  3 <br>  
<input type="checkbox" name="my[]" id="n4" value="4">что-то там  4 <br>  
<input type="checkbox" name="my[]" id="n5" value="5">что-то там  5 <br>  
<input type="submit" value="Выбрать">  
</body>  
</html>  
Не могу понять, чем мне id-шники могут помочь. Как обращатся к объекту через getElementsById я знаю, :-( в массив их чтоли запихать и по номеру сравнивать, какой больше. Локализовать чекбоксы "между" не могу.
...
Рейтинг: 0 / 0
05.05.2008, 18:23
    #35295309
mrJust
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
несовсем понятен термин "промежуточный" чекбокс.
Объясните задачу подробнее.
...
Рейтинг: 0 / 0
06.05.2008, 08:58
    #35295890
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
LubНе могу понять, чем мне id-шники могут помочь.
Если их правильно организовать никаких "лишних" проходов "поисков" в циклах не будет...

Я тоже не понял что нужно делать с чекбоксами в примере.
...
Рейтинг: 0 / 0
06.05.2008, 09:45
    #35295994
Lub
Lub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
Если отмечен 1 из чекбоксов - ну и фиг с ним.
Если отмечены 2 чекбокса, например, чекбокс id="n2" и чекбокс id="n5", то чекбоксы n3,n4 должны быть отмечены и нередактируемы (вот эти злобные n3 и n4 не могу получить)
При снятии отметки с n2 или n4, все "злобные" (n3, n4) становятся редактируемыми и не чЁкнутыми.
...
Рейтинг: 0 / 0
06.05.2008, 10:10
    #35296058
Lub
Lub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
естественно, очапатка в последней строчке, снять можно только с n5
...
Рейтинг: 0 / 0
06.05.2008, 10:53
    #35296182
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
Т.е., если я правильно понял, отмечать и "гасить" нужно чекбоксы "внутри" отмеченых?
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
06.05.2008, 10:58
    #35296201
Lub
Lub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
Угу. Грубо говоря, нужно получить "отрезок" по его концам. В идеале "внешние" чекбоксы тоже будут блокированы, но это я хоть представляю как сделать
...
Рейтинг: 0 / 0
06.05.2008, 11:16
    #35296264
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
LubУгу. Грубо говоря, нужно получить "отрезок" по его концам.
Вот теперь понятно!
Вот например такой алгоритм (id-шки у тебя есть).
- бежиш по елементам с
Код: plaintext
id="n"+i

ищеш "начало"... По ходу дела выключаеш все неактивные и делаеш их активными
- нашел первый включеный и активный - это и есть начало!
- с этого места начинаем искать "конец" - это первый включеный и активный
- если нашел - включаеш и вырубаеш всю нутрь с
Код: plaintext
id="n"+beg+ 1 

по
Код: plaintext
id="n"+end- 1 

- если не нашел нужно выключить и сделать активными все элементы с
Код: plaintext
id="n"+beg+ 1 

до самого конца...

Вроде так.
...
Рейтинг: 0 / 0
06.05.2008, 11:41
    #35296356
Lub
Lub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
Спасибо, вроде идея ясна.
...
Рейтинг: 0 / 0
06.05.2008, 11:58
    #35296410
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
krvsa , и чего ты так настаивал на id? Абсолютно то же самое можно сделать и без них через массив getElementsByName :-).
...
Рейтинг: 0 / 0
06.05.2008, 12:26
    #35296515
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
illion krvsa , и чего ты так настаивал на id?
Так автор там вообще по getElementsByTagName гонял... А насчет id, это я поддался "современным" веяниям... До этого всегда имена использовал... А тут все id! Id!
Как тут не дрогнуть?
В этом случае можно и с name сделать. Даже лучше! Там ведь есть свойство "количество элементов" Только что это за name такое?
Код: plaintext
name="my[]" 
...
Рейтинг: 0 / 0
06.05.2008, 12:36
    #35296543
mrJust
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
krvsaТолько что это за name такое?
Код: plaintext
name="my[]"

Скобки означают, что на сервак уйдет массив
...
Рейтинг: 0 / 0
06.05.2008, 13:18
    #35296709
Lub
Lub
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
Вау, приятно, что не совсем тупая. Ведь еще до прочтения постов отказалась от id, и перешла к name! Огромное спасибо за пинок в нужном направлении
...
Рейтинг: 0 / 0
06.05.2008, 13:55
    #35296874
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
checkbox "промежуточные значения" javascript
А можно и без наме и без ид:
Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
<html> 
<head> 
<body> 
<script type="text/javascript">
function load(){
for(i= 0 ;i<document.forms[ 0 ].elements.length; i++)
	if(document.forms[ 0 ].elements[i].type=="checkbox")
		document.forms[ 0 ].elements[i].onclick=clc;
}

function clc(){

first=findFirst(); last=findLast();
if(last>first)
	for(i=first+ 1 ;i<last;i++){document.forms[ 0 ].elements[i].checked=true;
		document.forms[ 0 ].elements[i].disabled=true;}

else for(i= 0 ;i<document.forms[ 0 ].elements.length; i++)
	if(document.forms[ 0 ].elements[i].disabled){
		document.forms[ 0 ].elements[i].disabled=false;
		document.forms[ 0 ].elements[i].checked=false;
	}
}

function findFirst(){
for(i= 0 ;i<document.forms[ 0 ].elements.length; i++)
	if((document.forms[ 0 ].elements[i].type=="checkbox")
		&&(document.forms[ 0 ].elements[i].checked)
		&&(!document.forms[ 0 ].elements[i].disabled))
			return i;
}

function findLast(){
for(i=document.forms[ 0 ].elements.length- 1 ; i>= 0 ; i--)
	if((document.forms[ 0 ].elements[i].type=="checkbox")
		&&(document.forms[ 0 ].elements[i].checked)
		&&(!document.forms[ 0 ].elements[i].disabled))
		return i;
}
</script>
</head>
<body onload="load();"> 
<form method="POST" action="my.pl">  
<input type="hidden" name="smth" value="var" />  
<input type="checkbox" name="my[]" id="n1" value="3">что-то там  1 <br> 
<input type="checkbox" name="my[]" id="n2" value="2">что-то там  2 <br> 
<input type="checkbox" name="my[]" id="n3" value="3">что-то там  3 <br>  
<input type="checkbox" name="my[]" id="n4" value="4">что-то там  4 <br>  
<input type="checkbox" name="my[]" id="n5" value="5">что-то там  5 <br>  
<input type="submit" value="Выбрать">
</form>  
</body>  
</html>
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / checkbox "промежуточные значения" javascript / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]