powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / checkbox "промежуточные значения" javascript
16 сообщений из 16, страница 1 из 1
checkbox "промежуточные значения" javascript
    #35294879
Lub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lub
Гость
Народ, я что-то сильно туплю. Есть в форме группа чекбоксов, задача проста, наверное, но я могу ее реализовать. Чайник, он и в африке... При выборе любых 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
checkbox "промежуточные значения" javascript
    #35294968
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот корень зла
Код: 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
checkbox "промежуточные значения" javascript
    #35295150
Lub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lub
Гость
Код: 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
checkbox "промежуточные значения" javascript
    #35295309
mrJust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
несовсем понятен термин "промежуточный" чекбокс.
Объясните задачу подробнее.
...
Рейтинг: 0 / 0
checkbox "промежуточные значения" javascript
    #35295890
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LubНе могу понять, чем мне id-шники могут помочь.
Если их правильно организовать никаких "лишних" проходов "поисков" в циклах не будет...

Я тоже не понял что нужно делать с чекбоксами в примере.
...
Рейтинг: 0 / 0
checkbox "промежуточные значения" javascript
    #35295994
Lub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lub
Гость
Если отмечен 1 из чекбоксов - ну и фиг с ним.
Если отмечены 2 чекбокса, например, чекбокс id="n2" и чекбокс id="n5", то чекбоксы n3,n4 должны быть отмечены и нередактируемы (вот эти злобные n3 и n4 не могу получить)
При снятии отметки с n2 или n4, все "злобные" (n3, n4) становятся редактируемыми и не чЁкнутыми.
...
Рейтинг: 0 / 0
checkbox "промежуточные значения" javascript
    #35296058
Lub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lub
Гость
естественно, очапатка в последней строчке, снять можно только с n5
...
Рейтинг: 0 / 0
checkbox "промежуточные значения" javascript
    #35296182
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е., если я правильно понял, отмечать и "гасить" нужно чекбоксы "внутри" отмеченых?
----------
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
checkbox "промежуточные значения" javascript
    #35296201
Lub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lub
Гость
Угу. Грубо говоря, нужно получить "отрезок" по его концам. В идеале "внешние" чекбоксы тоже будут блокированы, но это я хоть представляю как сделать
...
Рейтинг: 0 / 0
checkbox "промежуточные значения" javascript
    #35296264
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LubУгу. Грубо говоря, нужно получить "отрезок" по его концам.
Вот теперь понятно!
Вот например такой алгоритм (id-шки у тебя есть).
- бежиш по елементам с
Код: plaintext
id="n"+i

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

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

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

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

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

Скобки означают, что на сервак уйдет массив
...
Рейтинг: 0 / 0
checkbox "промежуточные значения" javascript
    #35296709
Lub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lub
Гость
Вау, приятно, что не совсем тупая. Ведь еще до прочтения постов отказалась от id, и перешла к name! Огромное спасибо за пинок в нужном направлении
...
Рейтинг: 0 / 0
checkbox "промежуточные значения" javascript
    #35296874
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно и без наме и без ид:
Код: 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
16 сообщений из 16, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / checkbox "промежуточные значения" javascript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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