
Gavosi man šiandien parašyti jQuery funkciją, kuri nuo paspaudimo ant radiobutton daro kažką, mano atveju-keičia klasę. Tad nusprendžiau pasidalinti.
Iš tikrųjų užduotis yra lengva, tačiau kaip man, nieko nežinančiam apie jQuery teko truputį pasistengi…
Taigi, turime mes tokį kodą:
1 2 3 | Taip <input type="radio" value="Taip" name="checkbox" > <br> Ne <input type="radio" value="Ne" name="checkbox"> |
Dabar paspaudus Taip mums reikia išvesti kažkokį tekstą arba formą. Kad tai padaryti siūlau paprasčiausia būdą: sukurti CSS klasę su display:none ir priskirti ją jau parengtam <div>.
Atrodo tai daugmaž taip:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <html> <head> <title>ApieViska.Info</title> <style type="text/css"> .hide{display:none;} </style> </head> <body> Taip <input type="radio" value="Taip" name="checkbox" > <br> Ne <input type="radio" value="Ne" name="checkbox"> <div class="hide" id="laukelis"> Mūsų tekstas </div> </body> </html> |
Tada sukuriam failą pavyzdžiui js.js
1 2 3 4 5 6 7 8 9 | $(document).change(function() { if ($('input:radio[name="checkbox"]:checked').val() === "Taip") $('#laukelis').removeClass('hide'); if ($('input:radio[name="checkbox"]:checked').val() === "Ne") $('#laukelis').addClass('hide'); }); |
Išsamiau apie funkcijas:
- .change() funkcija yra vykdoma kai elementas gauna kažkokius pakeitimus, mūsų atveju tai yra pasirinkimas Taip arba Ne
- input:radio[name="checkbox"]:checked šitokia sintakse tikrina visus radiobuttons su name checkbox
- val() val nuo žodžio value grąžina esamą reikšmę.
- $(‘#laukelis’) šitas kintamasis nurodo, kokiam id daryti pakeitimus.
- addClass() ir removeClass() prideda ir nuima stilių klases.
Taigi algoritmas yra visiškai paprastas: Pasirinkus Taip arba Ne suveikia change funkcija kurioje IF pagalba yra tikrinama esama reikšme ir nuo jos variantu keičiama klasė.
Galutinis variantas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <html> <head> <title>ApieViska.Info</title> <style type="text/css"> .hide{display:none;} </style> <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="js.js"></script> </head> <body> Taip <input type="radio" value="Taip" name="checkbox" > <br> Ne <input type="radio" value="Ne" name="checkbox"> <div class="hide" id="laukelis"> Mūsų tekstas </div> </body> </html> |
Šauniai paaiškinai!