![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 19.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Potrzebuję zrobić coś w stylu wyszukiwarki. Ma to być raczej filtrowanie już istniejących divów, dzięki czemu zaoszczędzę ludziom na przechodzeniu przez strony. Mam następujące inputy typów:
-name -selected x2 -number x2 -checkbox x25 Zacząłem od sprawdzania checkboxów. Myślałem, że sobie poradzę, ale to przekroczyło moje możliwości :< . Tutaj macie moje "testy": Kod <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script><div> <form>Wyszukiwarka: <br><input class="find" type="text"><br> 1<input class="find" id="one" type="checkbox" checked="checked"> <br> 2<input class="find" id="two" type="checkbox" checked="checked"> </form> <div name="Osiem" class="one "> "Osiem" 1 </div> <div name="Troll" class="two "> "Troll" 2 </div> <div name="kabum" class="one two"> "kabum" 1 2</div> <div name=" " class="one two"> " " 1 2</div> </div> Kod $('.find').change(function() { if ( $("#one").is(':checked') ) { $('.one').show(); }else{ $('.one').hide(); } if ( $("#two").is(':checked') ) { $('.two').show(); }else{ $('.two').hide(); } }); Więc rezultat był dobry, gdy checkbox był jeden. Przy drugim zaczęły się koligować. I jedno zaprzeczało drugiemu. W ogóle nie współgrały, gdy np. 1 był zaznaczony a 2 odznaczony to 1 & 2 było ukryte. Pomóżcie mi zrobić coś by sam sprawdzał checkboxy. i te warunki z name by był podobny chociaż. Dwa numbery mają określać minimum i maximum. A selecty to samo co checkboxy. Pomóżcie!! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 19.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Efekt nadal jest nie zadowalający. Poprawnie filtruje natomiast jak zaznaczam tylko jeden checkbox. Np. gdy zaznaczam tylko 1 pokazują się "one", "one two" itp, ale gdy włączę np. 2 lub 3 nic się nie zmienia.
http://jsbin.com/welcome/73833/watch Wykombinowałem jak mogę przekazywać ilość zaznaczonych checkbox'ów o ID takich jak nazwy klas. Lecz coś tam nadal nie gra. Pętla sprawdza tylko pierwszego div'a nie wiem czemu. Patent wykombinowany, gorzej z poprawnością kodu. Proszę pomóżcie mi odnaleźć błędy! Kod $('.checkme').each(function() {
$(this).attr('value', '0'); }); $('.find').change(function() { $('div.checkme').each(function() { div = $(this); value = $(this).attr('value'); $('.find[type="checkbox"]').each(function() { check = $(this); if( div.hasclass( check.attr('id') )){ if( check.attr('checked', 'checked')){ value = value + 1; } } }); div.attr('value', value); if( div.attr('value', '0') ){ div.hide(); }else{ div.show(); } }); }); Ten post edytował Maxie 16.01.2013, 16:32:08 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 19:45 |