Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
Kas
Robię newsletter w php. I chciałbym aby pole do wpisania adres mail było zablokowane do czasu zaznaczenia pola "Akceptuję regulamin". Po kliknięciu na to pole tekstowe ma być natychmiast odblokowane.
Jak to zrobić? sad.gif
crash
  1. <form name="test" ...>
  2. <input type="text" disabled name="pole"/>
  3. <input type="checkbox" onclick="window.test.pole.disabled = false;"/>
  4. </form>
Kas
Coś działać nie chce.

  1. <form action="zapisz.php" method="post" name="newsletter">
  2. <input type="text" name="adres" size="12" disabled>
  3. <br>
  4. <br>
  5. <input type="checkbox" onclick="window.newsletter.adres.disabled = false;">Akceptuję <a href="index.php?strona=new_reg">regulami</a>
  6.  
  7. <br>
  8. <br>
  9.  
  10. <input type="submit" name="send" value="Zapisz" class="glosuj">
  11.  
  12. </form>
crash
A u mnie to działa (Opera)...
Kas
U mnie nie działa (Mozilla Firefox 1.0.4).
I nie wiem w czym jest błąd.

Pole tekstowe jest zablokowane (tak jak trzeba).
Pole do zaznaczenia też jest poprawnie.
Ale po wybraniu opcji "Akceptuję regulamin" nic się nie zmienia. mad.gif
Help!
NoiseMc
  1. <script type="text/javascript" language="javascript">
  2. function wlaczAdres ()
  3. {
  4. if ( document.getElementById ( 'Regulamin' ).checked )
  5. {
  6. document.getElementById ( 'Adres' ).disabled = false;
  7. }
  8. else
  9. {
  10. document.getElementById ( 'Adres' ).disabled = true;
  11. }
  12. }
  13. </head>
  14.  
  15. <form action="zapisz.php" method="post">
  16.  
  17. Adres:
  18. <input type="text" name="Adres" id="Adres" size="12" disabled> <br>
  19.  
  20. Akceptuję <a href="index.php?strona=new_reg">regulamin</a>:
  21. <input type="checkbox" name="Regulamin" id="Regulamin" onClick="wlaczAdres ();"> <br>
  22.  
  23. <input type="submit" value="Zapisz">
  24. </form>
  25. </body>
  26. </html>


Działa pod FF i pod IE
Kas
Spokojnie - chyba nie trzeba tyle. Wystarczyło zmienić jedną rzecz...

  1. <form action="zapisz.php" method="post" name="newsletter">
  2. <input type="text" name="adres" size="12" disabled value="Twój mail">
  3. <br>
  4. <br>
  5. <input type="checkbox" onclick="newsletter.adres.disabled = false;">&nbsp;Akceptuję <a href="index.php?strona=new_reg" class="menu">regulamin</a>
  6.  
  7. <br>
  8. <br>
  9.  
  10. <input type="submit" name="send" value="Zapisz" class="glosuj">
  11.  
  12. </form>


Ale jak zrobić teraz aby po zaznaczeniu i odznczeniu opcji "Akceptuję regulamin" pole było znów nie aktywne?
Jaka funkcja javy jest za to odpowiedzialna (za odznaczenie)?
revyag
Kod
function c(check) {
    if(check.checked==true) {
        document.newsletter.adres.disabled="";
    } else {
        document.newsletter.adres.disabled="disabled";
    }
}

  1. <input type="text" name="adres" size="12" disabled="disabled" value="Twój mail" /><br /><br />
  2. <input type="checkbox" onclick="c(this)" />
Kas
Ehhhh...
A nie da się prościej?
Ja chciałem to zrobić np. tak.

  1. <input type="checkbox" onchange="newsletter.adres.disabled = false;" onblur="newsletter.adres.disabled = true;" class="wybor">&nbsp;Akceptuję <a href="index.php?strona=new_reg" class="menu">regulamin</a>


Ale to (niestety) nie działa.
Czy ktoś umie to zrobić z użyciem onclick, onblur, onfocus oraz onchange?
Byłbym bardzo wdzięczny, bo sam testowałem i raczej mi nie wychodzi.
Błagam o pomoc!
revyag
No można prościej smile.gif
  1. <input type="checkbox" onclick="(this.checked==true)? document.newsletter.adres.disabled='':document.newsletter.adres.disabled='disabled'">
Kas
Działa.
Revyag jesteś wielki. Dziękuję! smile.gif

Wytłumacz mi tylko proszę jak to działa, bo java script nie jest moją specjalnością.
revyag
Kod
(this.checked==true)? document.newsletter.adres.disabled='':document.newsletter.adres.disabled='disabled'

Jeśli warunek (this.checked==true) jest spełniony, to wykonywana jest operacja po znaku zapytania, w przeciwnym wypadku wykonywna jest operacja po dwukropku.
Ten zapis jest równoważny temu:
Kod
if(this.checked==true) {
document.newsletter.adres.disabled=''
} else {
    document.newsletter.adres.disabled='disabled'
}
Kas
Rozumiem. Jeszcze raz dziękuję. biggrin.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.