Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JS) Задачка из трех checkbox / 10 сообщений из 10, страница 1 из 1
19.02.2014, 19:25
    #38566719
Папик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Задачка из трех checkbox
Код: 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
19.02.2014, 19:40
    #38566735
а если...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Задачка из трех checkbox
Папик,

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

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

аааа, не сображаю как сделать:)
...
Рейтинг: 0 / 0
19.02.2014, 20:36
    #38566776
а если...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Задачка из трех checkbox
Папик,
Код: 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
19.02.2014, 21:25
    #38566812
Папик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Задачка из трех checkbox
все заработало, ухааа:)
а я пол дня с if мачался)
искренне огромное спасибо
...
Рейтинг: 0 / 0
19.02.2014, 21:35
    #38566815
Папик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Задачка из трех checkbox
немножко нужно поправить, нельзя снимать с первого бокса галочку, когда стоит и во втором
иными словами, не может остаться один второй бокс cheked
сейчас попробую, если не получится подскажите пожалуйста
Спасибо

Модератор: Тема перенесена из форума "PHP, Perl, Python".
...
Рейтинг: 0 / 0
19.02.2014, 22:08
    #38566827
Папик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Задачка из трех checkbox
у меня только решение в 'лоб'
Код: 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
20.02.2014, 00:37
    #38566904
а если...
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JS) Задачка из трех checkbox
Папик,
Код: 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
21.02.2014, 14:51
    #38568858
(JS) Задачка из трех checkbox
Папиквсе заработало, ухааа:)
а я пол дня с 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
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JS) Задачка из трех checkbox / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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