Witam serdecznie,
Mam taki kod HTML:
OPCJE GŁÓWNE <http://december.com/html/4/element/input.html checked type="checkbox" value='2' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 1 <http://december.com/html/4/element/input.html type="checkbox" value='8' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 2 <http://december.com/html/4/element/input.html type="checkbox" value='9' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 3 <http://december.com/html/4/element/input.html checked type="checkbox" value='10' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 4 <http://december.com/html/4/element/input.html type="checkbox" value='3' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 5 <http://december.com/html/4/element/input.html type="checkbox" value='11' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 6 <http://december.com/html/4/element/input.html type="checkbox" value='12' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 7 <http://december.com/html/4/element/input.html type="checkbox" value='13' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 8 <http://december.com/html/4/element/input.html type="checkbox" value='14' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 9 <http://december.com/html/4/element/input.html type="checkbox" value='15' name="zaznacz[]" class="zaznacz_sprawdz" /> opcja 10 OPCJE WYKLUCZONE <http://december.com/html/4/element/input.html checked type="checkbox" value='2' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 1 <http://december.com/html/4/element/input.html type="checkbox" value='8' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 2 <http://december.com/html/4/element/input.html type="checkbox" value='9' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 3 <http://december.com/html/4/element/input.html checked type="checkbox" value='10' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 4 <http://december.com/html/4/element/input.html type="checkbox" value='3' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 5 <http://december.com/html/4/element/input.html type="checkbox" value='11' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 6 <http://december.com/html/4/element/input.html type="checkbox" value='12' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 7 <http://december.com/html/4/element/input.html type="checkbox" value='13' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 8 <http://december.com/html/4/element/input.html type="checkbox" value='14' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 9 <http://december.com/html/4/element/input.html type="checkbox" value='15' name="wymagaj[]" class="wymagaj_sprawdz" /> opcja 10
trzeba porównać value
tak, wiem... tylko nie wiem jak to zrobić
Próbowałem czymś takim:
$('.zaznacz_sprawdz').click(function() { if($(this).is(":checked")) // zaznaczony wymagaj_sprawdz { if($('.wymagaj_sprawdz').val() == $(this).val()){ alert('Nie można wybrać tej opcji ponieważ została ona już wybrana WYMAGANYCH.') $(this).prop('checked', false); } } else { // odznaczony } });
Musisz sprawdzić w drugiej grupie checkbox o tym samym indeksie, który jest klikany w pierwszej grupie.
Obecnie sprawdzasz zawsze pierwszy w drugiej grupie.
$('.zaznacz_sprawdz').click(function() { if($(this).is(":checked")) // zaznaczony wymagaj_sprawdz { var selected = []; $('.wymagaj_sprawdz').each(function() { if ($('.wymagaj_sprawdz').val() == $(this).val()) { selected.push($('.wymagaj_sprawdz').attr('val')); alert('Nie można wybrać tej opcji ponieważ została ona już wybrana WYMAGANYCH.'); $(this).prop('checked', false); } }); } else { // odznaczony } });
Teraz sprawdzasz każdy z drugiej grupy.
Jeśli sprawdzasz 2 w pierwszej grupie, to również 2 w drugiej grupie.
Możesz to zrobić korzystając z pętli each: http://api.jquery.com/jquery.each/
Albo jeszcze inaczej. Skoro każdy odpowiednik ma taki sam atrybut value, to klikając w pierwszej grupie input z value=5, sprawdzasz w drugiej grupie input z tym samym value.
I mógłbyś tez za pomocą fieldset stworzyć logiczne grupy. Wtedy zbędne były by klasy na każdym elemencie.
https://jsfiddle.net/p2n4goq9/1/
1. Unikajmy bałaganu w HTML ;-)
@trueblue
dziękuje, działa
Mam jeszcze pytanie
Przerobiłem ten skrypt na taki:
$('.zaznacz_sprawdz').click(function() { if($(this).is(":checked")) // zaznaczony wymagaj_sprawdz { aktualny = $(this).val(); if($('.wymagaj_sprawdz[value="'+aktualny+'"]').is(':checked')) { alert('Ten rekord jest już wybrany w WYMAGANYCH'); $(this).prop('checked', false); } else{ aktualny = $(this).val(); var randomp = Math.round(Math.random() * 99999) + Math.round(Math.random() * 100000); $.get("check_producy.php", {query2: randomp, query1: $(this).val(), query3: 1}, function(data1) { //$(".producent2").html(data1); var myArray = data1.split('|'); if(myArray.length > 0 ){ var r = confirm("Znalazłem powiązania w konfiguracji WYKLUCZEŃ. Czy nanieść konfigurację na planszę?"); if (r == true) { for (var i = 0; i <= myArray.length + 1; i++) { if(myArray[i] !="" && myArray[i] !="undefined" && myArray[i] !="DODAJ" && myArray[i] !="USUN" && myArray[i] != null){ $(".zaznacz_sprawdz:checkbox[value="+myArray[i]+"]").prop("checked","true"); } } } else { alert('Operacja anulowana!'); $('.zaznacz_sprawdz:checkbox[value="' + aktualny + '"]').attr('checked', false); } } }); } } });
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)