Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: onclick w funkcji
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
imosek8
Witam! Mam mały problem, otóż, próbuję zrobić coś takiego...

  1. <script language="JavaScript">
  2. function showelement(id)
  3. {
  4. alert("get.ElementById('id').style.display = this.checked ? 'block' : 'none'");
  5. }


i potem w kodzie daje:

  1. <input type="radio" name="xxx" onclick="java script:showelement(coach);" />


coach to id div'a, który ma zostać wyświetlony po naciśnięciu. Mam parę takich div'ów, dlatego takie ujęcie w funkcji byłoby dla mnie wygodne. Jestem początkujący, więc nie wiem co tu robię źle, że to nie działa..;/ bo jak dam kod w onclick z alertu to działa....
WiruSSS
Jezeli już musisz to robić w ten sposób to wystarczy:

  1. <input type="radio" name="xxx" onclick="showelement('coach');" />


ale sugerowałbym przenieść cały JS do osobnego pliku. Można by nadać name inputów odpowiednie do id checkboxów i przeskanować wszystkie inputy (lub jeśli chcesz ograniczyć to nadać jakąś klasę tym co mają być przeszukwiane) i tam podpiąć zdarzenia.
imosek8
No i u mnie u groy wyskakuje komunikat z zawartoscia alert...a powinien pokazywac sie div...

Nie wiem wlasnie jak u mnie to zrobic, bo ogolnie mam 3 div'y. i teraz w jednym inpucie daje przy onclick:

  1. onclick="document.getElementById('player').style.display = this.checked ? 'block' : 'none'; document.getElementById('coach').style.display = this.checked ? 'none' : 'block'; document.getElementById('team').style.display = this.checked ? 'none' : 'block'; " "

w drugim

  1. onclick="document.getElementById('coach').style.display = this.checked ? 'block' : 'none'; document.getElementById('player').style.display = this.checked ? 'none' : 'block'; document.getElementById('team').style.display = this.checked ? 'none' : 'block'; " "


w trzecim
  1. onclick="document.getElementById('team').style.display = this.checked ? 'block' : 'none'; document.getElementById('coach').style.display = this.checked ? 'none' : 'block'; document.getElementById('player').style.display = this.checked ? 'none' : 'block'; " "


i wtedy dziala dobrze...ale pomyslalem ze przez funckje bedzie lepiej bo mniej kodu....jak to najlepiej zrobic?
nospor
No ale po grzyba wkladasz to w alert? Alert sluzy do wyswietlania tekstu a nie wykonywania kodu. Wywal ten alert a bedzie dzialac
imosek8
ja juz nic nie rozumiem mam dokladnie teraz tak:

w head
  1. <script language="JavaScript" type="text/javascript">
  2. function showelement(id)
  3. {
  4. document.getElementById('id').style.display = this.checked ? 'block' : 'none'";
  5. }


w body

  1. <input type="radio" name="BOX" onclick="showelement('coach');">
  2. <div id="coach" style="display: none;">
  3. <input type="text" name="login" placeholder="Login" class="forlog2">
  4. <input type="text" name="name" placeholder="Imię" class="forlog">
  5. <input type="text" name="surname" placeholder="Nazwisko" class="forlog">
  6. <input type="text" name="license" placeholder="Licencja" class="forlog2"><input type="text" name="email" placeholder="Podaj swój e-mail" class="forlog2">
  7. <input type="password" name="pass" placeholder="Hasło" class="forlog2">
  8. <input type="password" name="pass2" placeholder="Potwierdź hasło" class="forlog2">
  9. <input type="checkbox" name="reg"><span> Akceptuj</span> <a href="/regulamin.php" class="odnosnik">regulamin</a>
  10. </div>


Nie wiem, może źle coś przekazuje do funkcji albo coś?
nospor
No ale przekaz jeszcze do funkcji sswoj radio, bo w funkcji this. nie odnosi sie do niego
_Borys_
Skoro zaznaczasz radio to już nie możesz odznaczyć i wystarczy to:
[JAVASCRIPT] pobierz, plaintext
  1. function showelement(id)
  2. {
  3. document.getElementById(id).style.display = 'block';
  4. }
[JAVASCRIPT] pobierz, plaintext

a gdybyś chciał this.checked to musisz przekazywać kliknięty obiekt do funkcji czyli
onclick="showelement('coach',this);"
a odbierać
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. function showelement(id,input)
  3. {
  4. document.getElementById('id').style.display = input.checked ? 'block' : 'none'";
  5. }
  6.  
  7. </script>
[JAVASCRIPT] pobierz, plaintext

ale to raczej dla checkbox-a
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.