Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] Input Type Radio w img
Forum PHP.pl > Forum > Przedszkole
Komarek
Witam
Na wstępie powiem ze nigdzie nie znalazlem rozwiazania na moj problem chociaz troche juz googlowalem ;]

Chce ogolnie zrobic obrazkowe 'radio'

Obrazek1
Obrazek1-wcisniety
Obrazek2
Obrazek2-wcisniety

I mam proste 2 obrazki obok siebie, po zaznaczeniu ktoregos z nich zmienia sie na drugi obrazek (tak jak rollover ale dopiero po zaznaczeniu)
No i powinny dzialac tak jak input type=radio ;p

Jezeli jest inna mozliwosc to prosilbym o pomoc w polaczeniu tego z formularzem.

Bardzo prosze o pomoc.
Pozdrawiam, Komarek
ixpack
Input ustaw na display:none;
Dodaj label dla każdego radio -> label to obrazek. (Edit: Problem zostaje przy zaznaczonym radio -> tylko w css3 i w js można podmienć obrazek... Bez css3 lub js zostanie obrazek i nawet gdy będzie zaznaczone radio - obrazek będzie taki sam...)

Przykład (z użyciem jquery):

  1. <div class="jq_sizes">
  2. <input type="radio" id="uni1" name="jv_size" value="9" style="display:none;" /><label for="uni1">XXS</label>
  3. <input type="radio" id="uni2" name="jv_size" value="10" style="display:none;" /><label for="uni2">XS</label>
  4. <input type="radio" id="uni3" name="jv_size" value="11" style="display:none;" /><label for="uni3">S</label>
  5. </div>


Oczywiście ja użyłem jquery i _buttonset();
Trochę css zmieniłem i wygląda wyśmienicie wink.gif - jeszcze formularza nie podrzuciłem na serwer także linka nie dam...

Teraz jeżeli chcesz zmienić wygląd obrazka, radia zaznaczonego - > bez javy idzie zrobić w css3, ale nie każda przeglądarka to obsługuje tu jest co i jak

No i pozostaje "tradycyjny" jquery - to już możesz wygooglować wink.gif (radio + jquery).

Pozdr.

Ps. Jak pomęczysz, a nie zrobisz - to wstawię coś "po chłopsku", ale narazie w pracy jestem ;]
Komarek
@up:
kojarzy mi sie ze probowalem tego rozwiazania, i po usunieciu S, XS, czy tez XXS, skrypt po prostu glupieje.

Pozatym nie wiem czy mnie zrozumiales do konca, podales linka do stronki w ktorej jest przyklad z grafika jako radio (bylem tam zreszta), jednak ja potrzebuje takiego gdzie kazde inne radio bedzie mialo rozna grafike podstawowa i rozna checked ;p
ixpack
Pokombinowałem i coś wymodziłem:

  1. <title>Javascript radio</title>
  2. <script type="text/javascript" src="./jquery/jQuery.js"></script> <!-- OCZYWISCIE ZESSAC TRZEBA JQUERY -->
  3. <script type="text/javascript">
  4.  
  5. <!-- Tu do sprawdzenia wartosci zaznaczonego radio -->
  6. function getCheckedValue(radioObj) {
  7. if(!radioObj)
  8. return "";
  9. var radioLength = radioObj.length;
  10. if(radioLength == undefined)
  11. if(radioObj.checked)
  12. return radioObj.value;
  13. else
  14. return "";
  15. for(var i = 0; i < radioLength; i++) {
  16. if(radioObj[i].checked) {
  17. return radioObj[i].value;
  18. }
  19. }
  20. return "";
  21. }
  22.  
  23. <!-- A tu nasza magia ;) -->
  24. function setCheckedValue(radioObj, newValue) {
  25. if(!radioObj)
  26. return;
  27. var radioLength = radioObj.length;
  28. if(radioLength == undefined) {
  29. radioObj.checked = (radioObj.value == newValue.toString());
  30. return;
  31. }
  32.  
  33. for(var i = 0; i < radioLength; i++) {
  34. radioObj[i].checked = false;
  35. if(radioObj[i].value == newValue.toString()) {
  36. radioObj[i].checked = true;
  37. $("#"+radioObj[i].id+"x").addClass(radioObj[i].id); <!-- jQuery -->
  38. }
  39. else $("#"+radioObj[i].id+"x").removeClass(radioObj[i].id); <!-- jQuery -->
  40. }
  41.  
  42. }
  43. <style type="text/css">
  44. <!-- Oczywiście ustawiamy sobie css buttonow, ktore powiazane sa z raio - obrazki tez wchodza w gre... -->
  45. .niezaznaczone {
  46. background-color: blue;
  47. }
  48.  
  49. .niezaznaczone2 {
  50. background-color: red;
  51. }
  52.  
  53. .jeden {
  54. background-color: #006;
  55. }
  56.  
  57. .dwa {
  58. background-color: #600;
  59. }
  60.  
  61. </head>
  62.  
  63. <form name="radioForm" method="get" action="" onsubmit="return false;"> <!-- oczywiscie to false trzeba usunac -->
  64. <p style="display:none;"> <!-- chowamy radio - a w noscripcie wstawiamy zwykle radiobuttony jakby js nie bylo obslugiwane... -->
  65. <label class="jeden" for="jeden"><input type="radio" value="1" name="numer" id="jeden"></label>
  66. <label class="dwa" for="dwa"><input type="radio" value="2" name="numer" id="dwa"></label>
  67. </p>
  68.  
  69. <input type="button" onclick="alert('Wartosc: '+getCheckedValue(document.forms['radioForm'].elements['numer']));" value="Pokaz wartosc">
  70.  
  71. <!-- id radia + x daje nam id buttona -->
  72. <input id="jedenx" class="niezaznaczone" type="button" onclick="setCheckedValue(document.forms['radioForm'].elements['numer'], '1');" value="Ustaw jeden">
  73. <input id="dwax" class="niezaznaczone2" type="button" onclick="setCheckedValue(document.forms['radioForm'].elements['numer'], '2');" value="Ustaw dwa">
  74.  
  75. <input type="button" onclick="setCheckedValue(document.forms['radioForm'].elements['numer'], '');" value="Wyczysc">
  76. </form>
  77.  
  78. </body>
  79. </html>


Teraz wszystko w Twoich łapach - zmień css, ustaw obrazki, podepnij jquery i będzie ok wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.