• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdzanie, czy wciśnięte zostały 2 checkboxy w każdym z pytań (każdej z klas)

Object Storage Arubacloud
0 głosów
109 wizyt
pytanie zadane 31 sierpnia 2017 w JavaScript przez Adiks Nowicjusz (240 p.)

Przeszukałem internet w poszukiwaniu rozwiązania mojego problemu, niestety albo nic nie ma, albo nie umiem szukać. Chciałbym w zewnętrznym pliku javascript wykonać skrypt, który na podstawie klasy elementów checkbox sprawdzi, czy w danej klasie nie ma więcej niż 2 zaznaczonych checkboxów. Tworzę ankietę, dlatego sprawdzone musi być każde pytanie oddzielnie. Zaczynam przygodę z javaspript, mam nadzieję, że istnieje możliwość rozwiązania problemu przy pomocy tego języka. Poniżej kod, który udało mi się stworzyć. Obecnie sprawdza on czy w pytaniu 6 i pytaniu 9 (łącznie) zaznaczone są maksymalnie 2 checkboxy, czy możecie podpowiedzieć jaką zmianę wprowadzić, aby sprwadzenie następowało dla każdego z pytań osobno. Pytań w każdym z plików php będzie po 4-5, więc można powiedzieć, że kod jest w fazie początkowej. 

 

 

{
		
		let blad = true;
		
		function returnObject() {
		return {
        first: '.pyt6',
        second: '.pyt9',
        third: '.pyt10'
		}
		}

		var result = returnObject();
		let checkbox = document.querySelectorAll(result.second + ',' + result.first);

		
	
		
		
		let maxChecked = 2;
		
		function count() {
			let checked = 0;
			for(let i=0; i<checkbox.length; i++) {
				
				if(checkbox[i].checked) {
					checked++;
				}
			}
			return {"checked": checked};
		}
		
		function maxCheckbox() {
			count();
			if(count().checked >= maxChecked) {
				[].forEach.call(checkbox, function(checkbox){
					if(checkbox.checked === false) {
						checkbox.disabled = true;
					}
					
				});
			}
			
			unBlock();
			
		}
		
		function unBlock() {
			if(count().checked < maxChecked) {
				[].forEach.call(checkbox, function(checkbox){
					if(checkbox.disabled===true) {
						checkbox.disabled=false;
					}
					}
				)
			}
		}
			
		[].forEach.call(checkbox, function(checkbox){
			checkbox.addEventListener('click', maxCheckbox);
		});

		button.addEventListener('click', check); 

 

1 odpowiedź

0 głosów
odpowiedź 31 sierpnia 2017 przez Fenix Nałogowiec (26,750 p.)

Wystarczy pobrac dane z checkboxow a nastepnie na tablicy danych uzyc filter i sprawdzic ilosc elementow wystepujacych w callbacku. 

komentarz 31 sierpnia 2017 przez Adiks Nowicjusz (240 p.)
A jak to najlepiej zrobić? W pętli dla każdego pytania? Wszystkie odpowiedzi dla każdego z pytań mają taką samą klasę.
komentarz 31 sierpnia 2017 przez Fenix Nałogowiec (26,750 p.)

maja taka sama klase ale mozesz pobierac przeciez po rodzicu tzn document.getElementById('nazwaPytania).getElementsByClassName('classaPytania').

Mozesz rowniez pobrac elementy checked odrazu dziala od ie+9.
querySelectorAll('input[name=name]:checked');

Podobne pytania

0 głosów
0 odpowiedzi 195 wizyt
+1 głos
0 odpowiedzi 112 wizyt
0 głosów
1 odpowiedź 195 wizyt

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...