Comment puis-je savoir qu'un formulaire de saisie a changé?
J'ai un formulaire généré par <% Ajax.BeginForm() {} %>
qui contient beaucoup d'entrées et de texareas.
Lorsqu'une entrée de changement de valeur, j'ai besoin de savoir à ce sujet et marque l'entrée et la forme comme "sale". Si l'utilisateur tente de quitter la page sans enregistrer, je vais lui demander de confirmer l'abandon de changements.
Toute suggestion tendant à la façon dont cela devrait être fait?
Vous devez vous connecter pour publier un commentaire.
Les commandes html inclure une propriété qui contient la valeur d'origine. On pourrait comparer cette valeur avec la valeur actuelle pour voir si des modifications ont été apportées.
De jQuery Docs:
Et vous pourriez faire comme ceci pour vérifier que les entrées et l'utilisateur averti, si elles tentent de quitter sans enregistrer les modifications.
jQuery API .modifier()
Ressusciter cette vieille question, parce que j'ai pensé à un simple/mieux. Au lieu d'écouter les événements sur les diverses entrées, vous pouvez sérialiser la forme initiale de données, les stocker, puis sérialiser à nouveau plus tard et de vérifier si ça a changé, comme ceci:
Un autre avantage, c'est que si l'utilisateur fait un changement, puis revient il, cette vérification rapport de la forme propre.
Je voudrais le faire avec jQuery. Il serait quelque chose comme ceci (juste un projet, vous devrez peut-être ajouter/changer une partie du code):
Alors, avant de Poster, vérifiez si il y a une sale d'entrée. Vous pouvez même ajouter de la couleur à l'aide de la sale de classe css.
EDIT: correction de fautes de frappe 'changé' à 'modifier'
Vous pouvez utiliser le plugin jquery dirrty pour identifier formulaire sale.
https://github.com/rubentd/dirrty
Sur("sale") l'organisation d'une épreuve de certaines global variable à true pour identifier la forme a changé.
Poignée
window.onbeforeunload
ou$(window).unload()
événement et obtenir la confirmation de l'utilisateur basée sur la valeur de la variable.L'avantage de ce plugin est que vous pouvez retrouver si le formulaire est changé aux valeurs d'origine, en utilisant à nouveau 'sur("propre"), événement