Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przelacznik z dwoma przyciskami
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
wojtektorr
Witam serdecznie, mam na stronie dwa divy i dwa przyciski, divy są ukryte. Klikając na button "in" pokazuje się div "wew" i akutomatycznie przycisk staj sie nieaktywny, w tym momencie mogę wybrać drógi przycisk "out" i po jego kliknięciu pokazuje sie div "zew" i z kolei ten przyciks staje sie nie aktywny a aktywnym staje się przycisk "in" i tak w kółko. Nie mogęzrobić tego przełączania miedzy nieaktywnymi przyciskami. Myślę z z kodu więcej zrozumiecie.
  1. <div id="change">
  2. <table align="left">
  3. <tr align="center">
  4. <td><input type="button" class="in" value="Zgłoszenie wewnętrzne" onclick="java script:change(this);"/></td>
  5. <td><input type="button" class="out" value="Zgłoszenie zewnętrzne" onclick="java script:change(this);"/></td>
  6. </tr>
  7. </table>
  8. </div>
  9.  
  10. <script type="text/javascript">
  11.  
  12. function change(item){
  13. if(item.className == "in") {
  14. item.disabled = "true";
  15. document.getElementById("zew").style.display = "none";
  16. document.getElementById("wew").style.display = "block";
  17. }
  18. else {
  19. item.disabled = "true";
  20. document.getElementById("zew").style.display = "block";
  21. document.getElementById("wew").style.display = "none";
  22.  
  23. document.getElementByClassName("in").setAttribute("disabled", "false");
  24. }
  25. }


Ta ostatnia linia kodu (document.getElementByClassName("in").setAttribute("disabled", "false")wink.gif nie chce zadziałać, dlaczego?
werdan
Sprobuj:

document.getElementByClassName("in").removeAttribute("disabled");
Turson
Cytat(wojtektorr @ 7.02.2014, 16:40:55 ) *
Ta ostatnia linia kodu (document.getElementByClassName("in").setAttribute("disabled", "false")wink.gif nie chce zadziałać, dlaczego?

Sprawdź czy to coś zmienia
  1. <input type="submit" disabled=true>
  2. <input type="submit" disabled=false>

potem wyciągnij wniosek wink.gif
wojtektorr
Hmm efekt taki sam czy disabled=true czy disabled=false, ale jak usunac ten atrybut po uprzednim jego ustawieniu nadal nie wiem :/
Kshyhoo
O to Ci chodzi?
[JAVASCRIPT] pobierz, plaintext
  1. function disable_enable(_this) {
  2. if (_this == 'in') {
  3. document.test.in.disabled=true;
  4. document.test.out.disabled=false;
  5. } else {
  6. document.test.in.disabled=false;
  7. document.test.out.disabled=true;
  8. }
  9. }
[JAVASCRIPT] pobierz, plaintext

  1. <form name="test" >
  2. <input type="button" id="in" value="Zgłoszenie wewnętrzne" name="b1" onclick="disable_enable('in');" >
  3. <input type="button" id="out" value="Zgłoszenie zewnętrzne" name="b2" onclick="disable_enable('out');">
  4. </form>
wojtektorr
Dokładnie o to, dzięki! Jeszcze jedno, czy muszę te buttony umieszczać w jakimś formularzu mogę sie do nich w funkcji odwołać jakoś z pominięciem document....out.disabled=false;
Kshyhoo
Bez FORM nie będzie chciało włączać DIV.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//en">
  2. <title>Demo</title>
  3.  
  4. <meta http-equiv="Content-Type" content="text/html;" charset="utf-8">
  5. <meta http-equiv="Content-Language" content="pl">
  6. <style type="text/css">
  7. #wew {
  8. position: relative;
  9. width: 500px;
  10. height: 300px;
  11. background-color: #f00;
  12. margin: 0 auto;
  13. display: none;
  14. }
  15. #zew {
  16. position: relative;
  17. width: 500px;
  18. height: 300px;
  19. background-color: #33f;
  20. margin: 0 auto;
  21. display: none;
  22. }
  23. input[disabled] {
  24. color: red;
  25. text-decoration: none;
  26. }
  27.  
  28. <script language="JavaScript">
  29. function disable_enable(_this) {
  30. if (_this == 'in') {
  31. document.test.in.disabled=true;
  32. document.test.out.disabled=false;
  33. document.getElementById("zew").style.display = "none";
  34. document.getElementById("wew").style.display = "block";
  35. } else {
  36. document.test.in.disabled=false;
  37. document.test.out.disabled=true;
  38. document.getElementById("zew").style.display = "block";
  39. document.getElementById("wew").style.display = "none";
  40. }
  41. }
  42. </head>
  43.  
  44. <div id="change">
  45. <table align="left">
  46. <tr align="center">
  47. <form name="test" >
  48. <td>
  49. <input type="button" id="in" value="Zgłoszenie wewnętrzne" name="b1" onclick="disable_enable('in');" >
  50. </td>
  51. <td>
  52. <input type="button" id="out" value="Zgłoszenie zewnętrzne" name="b2" onclick="disable_enable('out');">
  53. </td>
  54. </form>
  55. </tr>
  56. </table>
  57. </div><br /><br />
  58.  
  59. <div id="wew"></div>
  60. <div id="zew"></div>
  61.  
  62. </body>
  63. </html>
wojtektorr
W IE 8 nie działa, za niedziałanie odpowiadają te linie: document.test.in.disabled=true;
document.test.out.disabled=false;
Kshyhoo
Cytat(wojtektorr @ 10.02.2014, 10:22:59 ) *
W IE 8 nie działa

W IE mało co działa wink.gif
owca_82
Do "inputów" odwołuj się poprzez atrybut "name" a nie id
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.