3 Stimmen

Benachrichtigung, dass die Benutzerseite geändert wurde, wenn man versucht, die Seite zu verlassen, was ist die Technik?

Wenn ein Benutzer auf einer Seite mit einem Formular ist und etwas bearbeitet hat und dann versucht, zu einer anderen Seite zu navigieren, wie kann ich ihn benachrichtigen?

Wie machen die Menschen das?

Geht es darum, einen Hash aller Eingabefelder zu berechnen und zu vergleichen, ob sie die Seite verlassen?

Gibt es ein Ereignis beim Entladen der Seite?

6voto

FishBasketGordo Punkte 22458

Ich möchte den Benutzer nur fragen, wenn er tatsächlich etwas geändert hat. Etwa so:

var changesMade = false;

function onDataChanged() {
    changesMade = true;
}

$('input:text, textarea, select').change(onDataChanged);
$('input:checkbox, input:radio').click(onDataChanged);

$(window).bind('beforeunload', function() {
    if (changesMade) {
        return 'Changes have been made. Are you sure you want to leave the page?';
    } else {
        return null;
    }
});

0voto

pimvdb Punkte 146174

Les onbeforeunload Veranstaltung:

$(window).bind('beforeunload', function() {
    return 'Are you sure?';
});

Bei einigen Browsern wird die Meldung angezeigt, bei anderen Browsern wird sie nicht angezeigt. Es wird jedoch ein Dialog mit einer Leave und eine Stay Schaltfläche in allen Browsern (soweit ich weiß), so dass der Benutzer wählen kann.

0voto

ShankarSangoli Punkte 68964

Verwenden Sie beforeunload Ereignis des Fensters.

$(window).bind('beforeunload', function() {
        return confirm("Alert user");
    });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X