Skocz do zawartości

Jak w JS zrobić ograniczenia do wyboru tylko dwóch checkbox-ów


Maximus Marius

Rekomendowane odpowiedzi

Chciałbym w preclu opartym na wordpress ograniczyć ilość wybieranych kategorii do dwóch, cześc użytkowników zaznacza wszytkie dostępne kategorie choc w regulaminie jest aby tego nie robić. Chciałbym po zaznaczeniu dwóch kategorii zablokować mozliwośc zaznaczania więcej kategorii .

w.JPG

<li id="category-1">
 <label class="selectit" for="in-category-1">
 <input type="checkbox" id="in-category-1" name="post_category[]" value="1"/> Biznes</label>
</li>
<li id="category-2">
 <label class="selectit" for="in-category-2">
 <input type="checkbox" id="in-category-2" name="post_category[]" value="2"/> Blogroll</label>
</li>...

Ktoś mogł by mniej więcej powiedzieć jak to zrobić w JS ? W obsłudze jakiego zdarzenia dać funkcję ?

Odnośnik do komentarza
Udostępnij na innych stronach

<script type='text/javascript'>

var counter = 0;   // tutaj podaj, ile checkboxow jest zaznaczonych na starcie

function checkboxesLimit(id) {
 if (document.getElementById(id).checked==true)
counter++;
 else
counter--;

 if (counter>2) {
document.getElementById(id).checked=false;
counter--;
}
 }
</script>

<input type="checkbox" id="in-category-1" name="post_category[]" value="1"  onclick='checkboxesLimit(this.id);' /> Biznes</label>
</li>...

Tylko że co to za zabezpieczenie, skoro wystarczy wyłączyć obsługę JS w przeglądarce?

Odnośnik do komentarza
Udostępnij na innych stronach

sprawdzone , działa zgodnie z założeniami :shout: dzięki

Bede tylko musiał jednak dynamicznie podłączyć onclick bo nie chcę przerabiać plików PHP wordpress-a i da sie to zamknać w standardowy plugin wordpress :) Coś jak kod poniżej tylko poprawny ;)

for (var i=0;i<1000;i++)  //takie mało eleganckie założenie ze bedzie mniej niż 1000 
{
 var el = document.getElementById('in-category-' + i ); //pewnie trzeba jakoś skonwertować int do str
 el.onclick = checkboxesLimit(el);
}

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności