2016-08-18 6 views
1

Ich habe eine Situation hier. Ich habe eine Form, die versteckten Wert enthält. Wenn der Benutzer auf die Schaltfläche Zurück des Browsers klickt, sollte das Formular gesendet werden. Ich habe die Rücktaste gedrückt, aber habe keine Lösung für die Browser-Rücktaste gefunden. Hier ist mein Code.Formular absenden, wenn der Benutzer auf die Schaltfläche "Zurück" klickt

Formular

<form id="movevalue" action="/media" method="post"> 
    <input type="hidden" id="pagedetail" name="pagedetail" value="<?php echo $pagenumber; ?>" /> 
    <input type="submit" value="" style="display:none" /> 
</form> 

Am Ende der Seite ist mein Skript.

Skript

<script> 
    $(function(){ 
     $(document).bind("keydown keypress", function(e){ 
     if(e.which == 8){ // 8 == backspace 
     $('#movevalue').submit(); 
     } 
    }); 
    }); 
    window.onbeforeunload = function(evt)  
    {  
    if (typeof evt == 'undefined')  
     $('#movevalue').submit() 
    } 

    </script> 

window.onbeforeunload dies nicht für mich arbeiten.

+1

'backspace' nicht die Back-Taste des Browsers ist. Nur um sicher zu gehen. ;) – eisbehr

+1

Du musst damit umgehen, die Seite wirklich zu verlassen. Wenn Sie nur einen einzigen Tastendruck ausführen, wird das Problem nicht behoben, da der Benutzer die Zurück-Taste, die Maustasten oder das Rad verwenden kann und in allen Browsern keine Rücktaste gedrückt wird (Alt + links in Chrome). – Archer

+0

@eisbehr Ja es ist nicht aber mit Hilfe der Rücktaste geht es zur vorherigen Seite –

Antwort

2

einfach diesen Code verwenden, und dies wird alle Zustand der Seite verlassen oder in der Nähe decken ...

<script> 
window.onbeforeunload = function() { 
    $('#movevalue').submit(); 
    return true; 
}; 
</script> 
+0

diese Anzeige die Nachricht lassen oder nicht Ich wollte diese Nachricht nicht –

+0

Nein, wenn die Rückkehr wahr wird keine Nachricht angezeigt. – AnasSafi

+0

ist es angezeigt, Herr. Ich habe das implementiert –

1

versuchen Sie dies:

$(function() { 
if (window.history && window.history.pushState) { 
    window.history.pushState('', null, ''); 
    $(window).on('popstate', function (id) { 
     $('#movevalue').submit(); 
    }); 
} 

});

+0

dies ist nicht für diese –

Verwandte Themen