Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] jak zresetowac formularz ?
Forum PHP.pl > Forum > Przedszkole
nieraczek
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 ?
slewin
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ć
nieraczek
Tak tylko, że u mnie sprawa wygląda inaczej - nieuważnie przeczytałeś mego posta winksmiley.jpg
slewin
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
erix
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).
sowiq
Jest jeszcze coś takiego jak reset() - działa podobnie jak <input type="reset"... />.
ziqzaq
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
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.