Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kilka pytan dot. checkbox
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
acztery
mam kilka pyt dot. checkbox

1. Mam liste checkbox każdy ma swoje id i jest umieszczony w tanej komórce w tabeli jak zrobic ze po zaznaczeniu tego checkbox ta komorka zmienia tlo na czerowne np tak jak jest w phpmyadmienie

2. Ta sama lista po zaznaczeniu checkbox pojaie sie pole np <div>bla</div>

punt 2 prawie ok

mam takie cos

  1. <script type="text/javascript">
  2. function twist( recipient,recipientcheck)
  3. {
  4. divobj = document.getElementById( recipient );
  5. checkbox = document.getElementById( recipientcheck );
  6.  
  7. if(checkbox.checked){
  8. divobj.style.position = "relative";
  9. divobj.style.visibility = "hidden";
  10. }else{
  11. divobj.style.position = "absolute";
  12. divobj.style.visibility = "hidden";
  13. }
  14. }


ale np mamy 5 pol checkbox zaznacze 1 pokazuje sie , zaznacze 2 i 3 tez sie pokaze ale jak zamkne np 2 to div znika mimo tego ze 1,3 jest zaznaczony.
konys
Tak na szybko wklepane - musisz to sobie dostosować:

  1. <head>
  2. <style type="text/css">
  3. .transparent {background-color:transparent}
  4. .red {background-color:#C00}
  5. #checkboxTest {display:none; width:100%; background:#C00; padding:3px; border:1px solid #999}
  6. </style>
  7. function changeParentClass(obj) {
  8. if (obj.checked) {
  9. obj.parentNode.className = 'red';
  10. } else {
  11. obj.parentNode.className = 'transparent';
  12. }
  13. if (isAnyChecked()) {
  14. document.getElementById('checkboxTest').style.display = 'block';
  15. } else {
  16. document.getElementById('checkboxTest').style.display = 'none';
  17. }
  18. }
  19.  
  20. function isAnyChecked() {
  21. table = document.getElementById('checkboxTable');
  22. checkboxes = table.getElementsByTagName('input');
  23. for (i=0; i< checkboxes.length; i++) {
  24. if ('checkbox' == checkboxes[i].type && checkboxes[i].checked) {
  25. return true;
  26. }
  27. }
  28. return false;
  29. }
  30. </script>
  31. </head>
  32. <body>
  33. <div id="checkboxTest">Test checkboxow</div>
  34. <table width="50%" id="checkboxTable">
  35. <tr>
  36. <td><input type="checkbox" id="ch1" onchange="changeParentClass(this)" /></td>
  37. </tr>
  38. <tr>
  39. <td><input type="checkbox" id="ch2" onchange="changeParentClass(this)" /></td>
  40. </tr>
  41. </body>
  42. </html>
acztery
super prawie jest ok

a jak mma takie

<tr> <td>tytul</td><td>opis</td><td><input type="checkbox" id="ch2" onchange="changeParentClass(this)" /></td> </tr>

i chce aby cala komorka TR byla czerwona to nie mam pomysu probowalem ale raczkuje w JS

zmienilem na takie cos ale cos nie teges

  1. if (obj.checked) {
  2. document.getElementsByTagName('tr').parentNode = 'red';
  3. } else {
  4. document.getElementsByTagName('tr').parentNode = 'transparent';
  5. }
konys
To dobry przykład do nauki modelu DOM. W Twoim przypadku powinieneś dotrzeć do elementu nadrzędnego jakim jest TR i wszyskim jego potomkom TD przyporządkować odpowiednią klasę.
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.