powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JS) Задачка из трех checkbox
10 сообщений из 10, страница 1 из 1
(JS) Задачка из трех checkbox
    #38566719
Папик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: html
1.
2.
3.
4.
<input id="box_1"  type="checkbox" name="cat[]"  onclick="box1(this);"/>
<input id="box_2"  type="checkbox" name="cat[]"  onclick="box1(this);"/>
<input id="box_3"  type="checkbox" name="cat[]"  onclick="box1(this);"/>
 



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
function box1(source)
{
  for(i=0;i<3;i++)
  {
if(document.getElementById('box_1').checked)
{
document.getElementById('box_2').checked=false;
document.getElementById('box_3').checked=false;
}



мне нужно:
1. Если выбран первый, 2 и 3 false
2. Если выбран второй, 1 true 3 false
3. Если выбран первый и затем второй, 3 false
4. Если выбран 3, 1 и 2 false
5. По умолчанию 1 стоит true, остальные false

Что - то сам не могу догнать, уже мучаюсь не один час, что-то не прет у меня сегодня.....
...
Рейтинг: 0 / 0
(JS) Задачка из трех checkbox
    #38566735
а если...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папик,

если выбран третий и затем второй, - ?
...
Рейтинг: 0 / 0
(JS) Задачка из трех checkbox
    #38566738
Папик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если...,
авторесли выбран третий и затем второй, - ?
то с третьего снимается и ставится второй и первый
...
Рейтинг: 0 / 0
(JS) Задачка из трех checkbox
    #38566742
Папик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поправка по первому пункту:
1. Если выбран первый, 2 если стоит, то и остается и 3 false

попробую простыми словами:
1. Можно выбрать только первый
2. Можно выбрать только первый и второй
3. Можно выбрать только третий

аааа, не сображаю как сделать:)
...
Рейтинг: 0 / 0
(JS) Задачка из трех checkbox
    #38566776
а если...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папик,
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
function box1(source) {
    if ( ! source.checked ) return;
    
    var a = [
                document.getElementById('box_1'), 
                document.getElementById('box_2'),
                document.getElementById('box_3')
            ];
    
    switch ( a.indexOf(source) ) {
        case 1:
          a[0].checked = 1;
        case 0:
          a[2].checked = 0;
          break;
        case 2:
          a[0].checked = 0; a[1].checked = 0;  
    }
}
...
Рейтинг: 0 / 0
(JS) Задачка из трех checkbox
    #38566812
Папик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все заработало, ухааа:)
а я пол дня с if мачался)
искренне огромное спасибо
...
Рейтинг: 0 / 0
(JS) Задачка из трех checkbox
    #38566815
Папик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
немножко нужно поправить, нельзя снимать с первого бокса галочку, когда стоит и во втором
иными словами, не может остаться один второй бокс cheked
сейчас попробую, если не получится подскажите пожалуйста
Спасибо

Модератор: Тема перенесена из форума "PHP, Perl, Python".
...
Рейтинг: 0 / 0
(JS) Задачка из трех checkbox
    #38566827
Папик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня только решение в 'лоб'
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
function box1(source) {
    var a = [
                document.getElementById('box_1'), 
                document.getElementById('box_2'),
                document.getElementById('box_3')
            ];
    if ( ! source.checked ) 
	{
	if (!a[0].checked && a[1].checked && !a[2].checked) {a[0].checked = 1;}
	else if(!a[0].checked && !a[1].checked && !a[2].checked) {a[0].checked = 1;}
	}


    alert (a.indexOf(source));
    switch ( a.indexOf(source) ) {
        case 1:
          a[0].checked = 1;
        case 0:
          a[2].checked = 0;
          break;
        case 2:
          a[0].checked = 0; a[1].checked = 0;  
    }
}
...
Рейтинг: 0 / 0
(JS) Задачка из трех checkbox
    #38566904
а если...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Папик,
Код: javascript
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.
function box1(source) {
    
    var a = [
                document.getElementById('box_1'), 
                document.getElementById('box_2'),
                document.getElementById('box_3')
            ],
        checked = source.checked;
            
    if ( ! checked && 1 != a.indexOf(source) ) return;
    
    switch ( a.indexOf(source) ) {
        case 1:
          a[0].disabled = checked;
          if ( checked )
            a[0].checked = 1;
        case 0:
          if ( checked )
            a[2].checked = 0;
          break;
        case 2:
          a[0].checked = 0; a[1].checked = 0;
          a[0].disabled = 0;
    }
}

...
Рейтинг: 0 / 0
(JS) Задачка из трех checkbox
    #38568858
Папиквсе заработало, ухааа:)
а я пол дня с if мачался)
искренне огромное спасибоВ if нет ничего плохого, нужно знать когда нужно применять, а когда - нет.

Зачем три чекбокса сливать в одну функцию и потом разгребать? Назначь каждому чекбоксу свой обработчик. И будет все прозрачно.

Подумай, что если ты сам через пол-года будешь рефакторить или кто другой.

А высший пилотаж выпендрёжный код - фтопку.

например
Код: html
1.
2.
3.
<input id="chb1"  type="checkbox" name="cat[]"  onclick="switchBox_2_3()" checked="checked" />
<input id="chb2"  type="checkbox" name="cat[]"  onclick="switchBox_1_3()"/>
<input id="chb3"  type="checkbox" name="cat[]"  onclick="switchBox_1_2()"/>



Код: javascript
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.
   <script type="text/javascript">
	
	var
		chb1 = document.getElementById('chb1'),
		chb2 = document.getElementById('chb2'),
		chb3 = document.getElementById('chb3');
	
    function switchBox_2_3()
    { 
		if(!chb1.checked)
		{
			chb2.checked = false;
			chb3.checked = false;
		}
    }
	
     function switchBox_1_3()
    { 
		if(chb2.checked)
		{
			chb1.checked = true;
			chb3.checked = false;
		}
    }
	
    function switchBox_1_2()
    { 
		if(chb3.checked)
		{
			chb1.checked = false;
			chb2.checked = false;
		}
		else
			chb1.checked = true;
    }
    
    </script>


Если будешь работать в команде и кто-нибудь подвалит г-ца, то быстро поймешь. :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JS) Задачка из трех checkbox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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