2011-07-27 1 views
2

J'ai une page avec plusieurs étapes pour remplir un formulaire. À chaque étape, une vue partielle différente est chargée. Une étape est une zone de texte. Ils peuvent revenir et le modifier à une date ultérieure, et je veux qu'il apparaisse une fenêtre demandant s'ils veulent l'enregistrer quand ils vont à une étape différente sans enregistrer ce qu'ils ont fait, mais seulement s'ils ont édité ce qui est dans la zone de texte Y at-il un moyen simple de le faire en utilisant javascript ou quelque chose?comment vérifiez-vous si une zone de texte a été modifiée sur une page asp.net?

Répondre

1

Vous pouvez conserver une variable de compteur sur une page définie sur 0. Attachez maintenant un événement onchange à la zone de texte. Chaque fois que l'événement onchange se déclenche, incrémenter la variable compteur. maintenant, lorsque l'utilisateur navigue vers une page différente, vérifiez si la variable de compteur est 0. si elle est 0, la zone de texte n'a pas été modifiée sinon l'utilisateur a modifié la zone de texte.


une meilleure approche la charge page (window.onload) stocker le texte (textbox.value) de la zone de texte que vous souhaitez surveiller dans une variable. Lorsque l'utilisateur navigue vers une autre page, vérifiez si le texte actuel de la zone de texte correspond au texte de la variable. La valeur de la zone de texte est inchangée (mais elle a peut-être été modifiée plusieurs fois)
2 javascript supplémentaires appellent un sur le chargement de la page et l'autre lorsque l'utilisateur tente la navigation de la page. Dans l'approche précédente chaque fois que le texte du champ de saisie il y a un appel javascript (onchange d'événements et incremnting variable compteur)

0

Si vous voulez vérifier si la valeur a changé de quand la page chargée, vous peut comparer la valeur actuelle à la defaultValue:

if (textArea.defaultValue != textArea.value) { 

    // It's been edited 

} 
Questions connexes