Confirmez de quitter la page lors de la modification d'un formulaire avec jQuery
Je suis le codage d'un formulaire et j'ai besoin d'une fonction comme stackoverflow avoir: "Vous avez commencé à écrire ou éditer un post.".
J'ai regardé à travers le code de stackoverflow pour voir comment ils le font, mais je n'ai pas à demander à mon formulaire simple. C'est ce qu'ils ont sur question.js:
function initNavPrevention(b) {
if (b.which == "undefined") {
return
}
var a = $("#wmd-input");
a.unbind("keypress", initNavPrevention);
setConfirmUnload("You have started writing or editing a post.", a)
}
L'une des fonctions les déclencheurs de cette (je ne sais pas ce que c est):
if (c) {
e.keypress(initNavPrevention)
}
Et, enfin, ils ont setConfirmUnload(null);
pour le désactiver, je suppose.
Mon cas est simple. J'ai une page où je charge un <form />
via AJAX et je veux éviter lorsque ce formulaire est chargé de quitter la page sans avoir à cliquer sur le bouton SOUMETTRE ou si l'utilisateur clique sur ANNULER le formulaire est désactivé et la prévention ne sera pas de popup.
Avoir ce code, quelqu'un peut-il me dire comment je peux l'inclure sur mon site web?
C'est ma fonction AJAX pour charger le formulaire:
$("#projects_historics_edit_part_1").click(function(){
$("#ajax-loader").fadeIn('normal');
$.ajax({
url: BASE_URL + 'projects/ajax/get_historics_edit_part_1/' + PROJECT_ID,
type: "POST",
success: function(data) {
$("div#projects_historics_part_1").html(data);
$("#client").autocomplete(client_autcomplete_options);
var inicofin = $("#initdate, #findate").datepicker(initdate_datepicker_options);
}
});
$("#ajax-loader").fadeOut("normal");
return false;
});
Vous en remercie d'avance!
source d'informationauteur udexter
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire cela en utilisant
window.onbeforeunload
comme ceci:Donc, dans votre code, vous met à l'intérieur de la
success
rappel de votre$.ajax
appel.Pour désactiver la demande de confirmation, vous pouvez le faire:
Aussi, de voir cette réponse: Comment puis-je remplacer la OnBeforeUnload dialogue et de le remplacer par le mien?
C'est comment en JQuery
Vous pouvez Google JQuery Formulaire de fonction Serialize, cela permettra de recueillir toutes les entrées d'un formulaire et l'enregistrer dans le tableau. Je suppose que c'expliquer, c'est assez 🙂
J'ai fait une fonction générale de cette fonction sur Wasim excellente réponse:
Changements:
Qu'elle puisse être conçu, mais c'est ce que j'avais à faire pour le faire fonctionner correctement dans une véritable application web.
Grâce à Wasim, pour la bonne idée d'utiliser JQuery $(document).serialize().