Forma chiara sul Pulsante Indietro?

Ho una pagina con diverse caselle di controllo in un form, quando selezionato, filtro corrispondente info di un tavolo con jquery. Il mio problema è il seguente scenario:

  1. Qualcuno controlli una o più caselle di nascondere le righe dalla tabella

  2. Si fa Clic su un link, andando a un’altra pagina

  3. Clic sul pulsante indietro.

A questo punto, le caselle di controllo (in chrome, almeno), ma tutte le righe della tabella sono visibili ancora.

Tutte Le Idee?

InformationsquelleAutor Zach Lysobey | 2011-10-04



4 Replies
  1. 7

    Se il vostro obiettivo è quello di riportare l’esatta visione che avevano prima a sinistra (le righe della tabella sono ancora nascosti):

    Tale è uno svantaggio (o il vantaggio) di un sito web: è stato, in particolare quando si tratta di lato client manipolazione.

    Ciò che devi fare è memorizzare lo stato dell’applicazione nell’URL hash tag in modo che quando l’utente utilizza il proprio pulsante indietro, è possibile recuperare lo “stato” e di ricostruire il loro punto di vista.

    Ecco un’altra domanda la cui risposta potrebbe aiutarvi: jquery javascript: aggiunta la cronologia del browser indietro con hashtag?

    Se il vostro obiettivo è quello di restituire la pagina torna al suo stato iniziale:

    Solo reimpostare tutte le caselle di controllo di caricamento della pagina:

    $('input:checkbox').prop('checked', false);

    -o-

    Ripristinare l’intero modulo:

    $(':input','#myform')
     .not(':button, :submit, :reset, :hidden')
     .val('')
     .prop('checked', false)
     .prop('selected', false);
  2. 4

    Non permettere che la tua pagina nella cache, o aggiungere il codice per reimpostare la forma:

    $("form input").each(function(){
        var elem = $(this);
        var type = elem.attr("type");
        if(type == "checkbox") elem.prop("checked", "");
        else if(type == "text") elem.val("");
    });

    .each deve essere utilizzato, perché il selettore CSS input[type=text] non corrisponde <input />, mentre l’elemento è ancora un elemento di testo.

  3. 3

    Per IE resettare il modulo dopo l’invio, non è d’aiuto per me. Invece seguente codice ha funzionato per me. Il caricamento della pagina evento viene chiamato sul Pulsante Indietro del browser pure.

    $(window).load(function() {
        $('form').get(0).reset(); //clear form data on page load
    });
  4. 2

    Il tuo problema non è con la memorizzazione nella cache del browser, l’input dell’utente, ma con le righe non vengono nascosti. Si può facilmente risolvere questo problema con l’aggiunta di un jQuery script che controlla se una casella di controllo è selezionata (dopo il caricamento della pagina). Se l’opzione è selezionata, è possibile nascondere la riga 🙂

    pseudocodice:

    1. wait for the page to load
    2. for each checkbox check if checked
    3. if it's checked, hide the corresponding row in the same way you did when the user checked it.

Lascia un commento