Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jquery] jak zresetowac formularz ?
nieraczek
post 20.02.2009, 08:57:44
Post #1





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


Na stronie xxx.php mam taki formularz do ładowania zdjęcia i opisu:
  1. <form enctype="multipart/form-data" method="post" action="xxx.php" id="form">
  2.  
  3. Plik ze zdjęciem<input type="file" name="zdjecie" id="sciezka"/>
  4. Opis<input type="text" id="opis" name="opis" value="<?php if(isset($_POST['opis'])) echo $_POST['opis'] ?>" />
  5.  
  6. <input type="submit" name="laduj" value="Wyślij" />
  7.  
  8. </form>


Czyli po naciśnięciu przycisku submit ladowane jest zdjecie i powracamy na tę samą stronę i jeśli poprzednio w polu input do opisu coś wpisano to ten napis pozostaje.

Jeśli dam przycisk reset:
  1. <input id="reset" type="reset" value="Reset">
i w jquery napisz:
  1. <script type="text/javascript">
  2. $(document).ready(function()
  3. {
  4. $("#reset").click(function()
  5. {
  6. $("#opis").val("");
  7. });
  8.  
  9. });


To po przeładowaniu strony po załadowaniu zdjęcia pole input po naciśnięciu przycisku Reset NIE jest czyszczone.

A jeśli dam przycisk button:
  1. <input id="reset" type="button" value="Reset">
i w jquery:
  1. <script type="text/javascript">
  2. $(document).ready(function()
  3. {
  4. $("#reset").click(function()
  5. {
  6. $("#opis").val("");
  7. });
  8.  
  9. });


To po przeładowaniu strony i nacisnięciu przycisku reset input jest czyszczony, ale z kolei jak pierwszy raz wchodzi się na tę stronę i do pola input typie file ładuje się plik i naciska reset to pole input typu file nie jest czyszczone.

Jest jakies rozwiazanie zeby jak pierwszy raz wchodzi sie na strone po nacisnieciu przycisku reset czyscilo pola oraz po zaladowaniu pliku i nacisnieciu przycisku reset czyscilo pole opisu ?

Ten post edytował nieraczek 20.02.2009, 08:59:35
Go to the top of the page
+Quote Post
slewin
post 20.02.2009, 10:33:01
Post #2





Grupa: Zarejestrowani
Postów: 104
Pomógł: 7
Dołączył: 9.12.2008
Skąd: wroc

Ostrzeżenie: (0%)
-----


Coś takiego to reset czyści wszystkie pola
  1. <form action="http://" method="post" target="_blank" enctype="multipart/form-data">
  2. <input type="text" name="pole" value="" size="20" maxlenght="30" align="left" ><br>
  3. <textarea name="pole55" value="" size="left"></textarea>
  4. <input type="reset" name="pole" value="reset" size="20" size="left" >
  5. <input type="submit" name="pole" value="ok" size="20" size="left" />
  6. </form>


tutaj czyści nam pole numer 1 o nazwie "nazwa" :
  1. <form action="" method="" name="formularz">
  2. <input name="nazwa" size="30" maxlength="50" type="text" value="heh">
  3. <input name="nn" size="30" maxlength="50" type="text" value="hehfsdgsd">
  4. <input type="button" value="CZYSC 1 POLE" onClick="document.forms.formularz.nazwa.value='';">
  5. <input type="reset" value="RESET">
  6. </form>


powinno działać
Go to the top of the page
+Quote Post
nieraczek
post 20.02.2009, 11:05:51
Post #3





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


Tak tylko, że u mnie sprawa wygląda inaczej - nieuważnie przeczytałeś mego posta winksmiley.jpg
Go to the top of the page
+Quote Post
slewin
post 20.02.2009, 11:58:50
Post #4





Grupa: Zarejestrowani
Postów: 104
Pomógł: 7
Dołączył: 9.12.2008
Skąd: wroc

Ostrzeżenie: (0%)
-----


Przeczytałem winksmiley.jpg , zaraz się napije kawy to może mi się coś rozjaśni .
Z tego co napisałeś
Cytat
zeby jak pierwszy raz wchodzi sie na stronę po nacisnieciu przycisku reset czyscilo pola oraz po zaladowaniu pliku i naciśnięciu przycisku reset czyscilo pole opisu ?

jak pierwszy raz wchodzisz na stronę to pola nie są czyste questionmark.gif
Przecież nie musisz koniecznie tego robić przy użyciu biblioteki jQuery , to co wcześniej napisałem powinno spełnić zadanie
  1. <form enctype="multipart/form-data" method="post" action="form.php" id="form" name="formularz">
  2.  
  3. Plik ze zdjęciem<input type="file" name="zdjecie" id="sciezka"/>
  4. Opis<input type="text" id="opis" name="opis" value="<?php if(isset($_POST['opis'])) echo $_POST['opis'] ?>" />
  5. <input type="submit" name="laduj" value="Wyślij" />
  6. <input type="button" value="CZYSC POLE OPISU" onClick="document.forms.formularz.opis.value='';">
  7. <input type="button" value="CZYSC POLE FILE" onClick="document.forms.formularz.zdjecie.value='';">
  8. <input type="reset" value="CZYSC WSZYSTKIE POLA">
  9. </form>


Może czegoś nie rozumie , wytłumacz lepiej winksmiley.jpg
Go to the top of the page
+Quote Post
erix
post 20.02.2009, 13:47:00
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jest jakies rozwiazanie zeby jak pierwszy raz wchodzi sie na strone po nacisnieciu przycisku reset czyscilo pola oraz po zaladowaniu pliku i nacisnieciu przycisku reset czyscilo pole opisu ?

Z tego, co pamiętam, to przeglądarki blokują możliwość ustawienia wartości value dla pól typu file ze względów bezpieczeństwa (np. Ty chcesz tylko wyczyścić pole, ale atakujący mógłby podstawić jakiś inny plik z Twojego dysku).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
sowiq
post 20.02.2009, 13:57:28
Post #6





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jest jeszcze coś takiego jak reset() - działa podobnie jak <input type="reset"... />.
Go to the top of the page
+Quote Post
ziqzaq
post 20.02.2009, 14:05:43
Post #7





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


Cytat
Jest jakies rozwiazanie zeby jak pierwszy raz wchodzi sie na strone po nacisnieciu przycisku reset czyscilo pola oraz po zaladowaniu pliku i nacisnieciu przycisku reset czyscilo pole opisu ?

Wg. tego co autor wątku pisze to nie chce działania reset (powrót do wartości sprzed edycji pola) tylko coś w rodzaju clear (wyczyszczenie wartości).

O to chodzi?
Np. (zmieniłem tylko id elementów):
Kod
<script type="text/javascript">
$(document).ready(function(){
    // Kopia inputa (czyszczenie polega na wklejeniu kopii zamiast oryginalu)
    var s = $('#input_sciezka').clone();
    $('#button_reset').click(function(){
        // Czyszcze wartosc opisu
        $('#input_opis').val('');
        // Poniewaz wartosc jest read-only, zamieniam na kopie tego pola
        $('#input_sciezka').replaceWith(s.get());
        s = $('#input_sciezka').clone();
    });
});
</script>


Edit: poprawka kodu winksmiley.jpg

Ten post edytował ziqzaq 20.02.2009, 14:15:16
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 23:44