Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Alert uscita pagina senza submit form

    Ciao a tutti,

    Ho una pagina con un form.

    Dovrei mandare un alert all'utente se esce dalla pagina senza premere "submit".

    Ho trovato questo script che funziona:

    codice:
    <script type="text/javascript">
    window.onbeforeunload = function (evt) {
    var messaggio = 'Uscendo tutte le modifiche non salvate verranno perse.';
    if (typeof evt == 'undefined') {
    evt = window.event;
    }
    if (evt) {
    evt.returnValue = messaggio;
    }
    return messaggio;
    }</script>

    Però lancia l'alert anche se si preme SUBMIT... mentre sarebbe meglio non mostrarlo più , visto che l'utente ha deciso di invare il form.


    Come posso fare?



    Grazie in anticipo a chi voglia darmi anche solo una dritta.
    1,2,3,4,5,10,100 passi!

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    si attiva al submit perchè stai cambiando pagina, l'evento non distingue la differenza, quindi io cambierei il pulsante di submit così

    <input type="submit" ... onclick="window.onbeforeunload = function() { }" />
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Originariamente inviato da fcaldera
    si attiva al submit perchè stai cambiando pagina, l'evento non distingue la differenza, quindi io cambierei il pulsante di submit così

    <input type="submit" ... onclick="window.onbeforeunload = function() { }" />
    intanto grazie per risposta.


    ..che però non ho capito... eheh


    Intendi dire che per evitare che la funzione sia eseguita anche al submit, gli si fa fare una funzione vuota chiamanto l'evento onbeforeunload?

    Ho capito?
    1,2,3,4,5,10,100 passi!

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da i_am_antipop
    Intendi dire che per evitare che la funzione sia eseguita anche al submit, gli si fa fare una funzione vuota chiamanto l'evento onbeforeunload?
    esattamente
    l'evento click avviene prima dell'evento submit
    di conseguenza se al click sul submit ridefinisci la funzione window.onbefroeunload dovresti aggirare il problema.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Originariamente inviato da fcaldera
    esattamente
    l'evento click avviene prima dell'evento submit
    di conseguenza se al click sul submit ridefinisci la funzione window.onbefroeunload dovresti aggirare il problema.
    scusa, ho provato, ma senza successo.

    Sbaglio qualcosa?

    <input type="submit" name="action" value="Submit" onclick="window.onbeforeunload=function(){};" />
    1,2,3,4,5,10,100 passi!

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    effettivamente su FF funziona e in explorer no
    prova a scrivere così, su IE6 funziona...


    codice:
        <script type="text/javascript">
        window._submitform = false;
        window.onbeforeunload = function (evt) {
            if (!window._submitform) {
              var messaggio = 'Uscendo tutte le modifiche non salvate verranno perse.';
              if (typeof evt == 'undefined') evt = window.event;
              if (evt) evt.returnValue = messaggio;
              return messaggio;
            }
        }
        </script>
    
        ...
    
        <input type="submit" name="action" value="Submit" onclick="window._submitform = true" />
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Grazie mille!

    Con I Explorer 7 e F Firefox 3 funziona alla grande!


    mitico!
    1,2,3,4,5,10,100 passi!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.