![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Witam
Mam nastepujacy problem. Na stronie mam formularz: Mam tez funkcje, ktora blokuje oraz obdlokowuje te elementy:
Na dole dla testow zrobilem 2 przyciski do blokowania i odblokowania: No i wszystko ladnie smiga. Ale! Gdy formularz jest zablokowany i odswieze strone to pole mailSubject (to o type="text") nadal zostaje zablokowane. Textarea oraz button na nowo sa dostepne (i tak powinno byc). Ponadto gdy w inputa oraz textarea wpisze cokolwiek i odswieze strone to te elementy zawieraja wczesniej wpisane znaki. Jak rozwiazac te problemy, a w szczegolnosci ten pierwszy? Domyslam sie, ze mozna poprzez ustawienia przegladarki (jednak usuniecie pamieci podrecznej nie przynioslo efektu) ale wolalbym nie zmuszac potencjalnego uzytkownika do tego czynu ![]() Dodam jeszcze, ze problem wystepuje tylko na FireFoxie (Opera oraz Konqueror czyszcza formularz z elementow oraz ustawiaja je jako aktywne). Jakies pomysly? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
A spróbuj między java a script nie robić przerwy (bo wydaje mi się że to jest błąd)
Tak na marginesie to nie musisz jej w sumie dawać - można wyrzucić `java script:` Ten post edytował wipo 2.10.2006, 08:41:06 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Przerwe dodaje to forum. W moim kodzie jej nie ma.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
1. w wywolaniach zdarzeń podawanych jako atrybuty (onclik, onsubmit) nie używa się java script:. Jest to pseudo protokół i trzeba go podawać tylko jeżeli chcesz przypisać wywołanie danej funkji jako href dla odnośnika: <a href="java script:whatever()"> 2. w FF faktycznie dzieje się tak, że kiedy wpiszesz wartości w formularzu i odświeżysz stronę te wartości pozostają wpisane. Jest to trochę dziwne, aczkolwiek nigdy nie stwarzało mi super-problemu. Możesz sobie napisać funkcję JS która ustawi / wyczyści co trzeba w formularzu i odpalać ją przy zdarzeniu onload dla body. 3. możesz spróbować użyć atrybutu autocomplete="off" dla inputów. Dla type="text" zadziała, pole będzie puste po odświeżeniu, ale pozbawisz się też podpowiadania poprzednio wpisanych wartości (o ile ma to dla ciebie znaczenie). Sprawdź też, czy dodanie tego parametru pomoże przy input type="checkbox" np. pozdr. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Takie jest zachowanie firefoxa, faktycznie nieco irytujące.. możesz je ominąć na trzy sposoby.. o pierwszym wspomina siema kuba czyli atrybut autocomplete z wartością 'off', jedyny problem w tym przypadku, to że atrybut nie należy do specyfikacji HTML'a.
Drugi sposób, to nadawanie za każdym razem innych wartości dla nazw kontrolek (atrybut 'name').. przykłądowo poprzez doczepianie jakiegoś losowo wygenerowanego ciągu znaków do nazwy.. ale wiadomo jakie są minusy tego rozwiązania. Trzeci sposób, to resetowanie kontrolek poprzez javascript po załadowaniu strony. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Ok, dzieki za odpowiedzi. Jednak te wczesniej wpisane dane to nie taki problem. Wazniejsze jest dla mnie rozwiazanie kwestii zablokowania pola input (a wlasciwie jego odblokowania po przeladowaniu). Jak to rozwiazac? Dodam ze dodanie atrybutu disabled="false" w inpucie nie przynosi rezultatu :/
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dodam ze dodanie atrybutu disabled="false" w inpucie nie przynosi rezultatu Oczywiście, że nie przynosi :) nie powinno przynosić. Atrybut disabled jest atrybutem typu boolean - jeżeli jest, jego wartość wynosi true a jeżeli go nie ma - false. Dopiero XHTML wymaga konstrukcji disabled="disabled" -- tylko w takiej formie jest to prawidłowy zapis! W HTML wystarczy napisać <input disabled> (podobnie jest z checked, selected) Nie ma czegoś takiego jak disabled="false" czy diabled="true" - w taki sposób możesz modyfikować te wartości tylko przez JS. Nie zauważyłem tego wcześniej, a to jest banalne :) Jeżeli nie chcesz mieć elementu formularza zablokowanego nie możesz dać mu atrybutu disabled w żadnej postaci albo wyłączyć ten atrybut via JS po załadowaniu strony. pozdr. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 352 Pomógł: 0 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
@phpion.com
Samo dodanie atrybutu czy wartości do value nic nie zmieni.. Czytałeś w ogóle co napisaliśmy? Tam masz kilka gotowych rozwiązań podanych, nie będę drugi raz tego samego pisał |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:58 |