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);