J'ai une boîte de dialogue JQuery pour insérer une nouvelle ligne dans la table. Et tout fonctionne bien. Il y a quelques jours lorsque j'ai inséré Flexigrid pour la table a commencé un problème pour moi. Lorsque j'insère une boîte de dialogue Nouvelle ligne DissAppe, mais lorsque j'ouvre la boîte de dialogue pour les nouvelles données d'insertion insérées auparavant est toujours dans la boîte de dialogue.
Comment réinitialiser les champs de dialogue après avoir fini avec son utilisation. P>
Le code de la boîte de dialogue est: p> Ceci est formulaire de dialogue: < / p>
5 Réponses :
Vous pouvez utiliser le Plus d'informations sur jQuery ui . p> Fermer code> événement des dialogues de jQuery.
Je vais essayer d'éviter d'écrire ma propre fonction pour effacer les données dans la boîte de dialogue ... peut-être que quelqu'un a une solution pour cela: s
fonctionnerait-il si vous ajoutez cette ligne à la fonction de sauvegarde ou d'annulation?
$( "#newDialog-form" ).empty();
@mplungjan: ou vide () (Je l'ajoute à ma réponse. Thx), c'est une autre solution droite, la chose est que quel que soit le code à la pensée, il peut être résolu sans chercher des méthodes de dialogue.
Il supprime tout de la dialogue. Plus de lignes pour insérer quand je l'ouvre la 2e fois. Même avec HTML () et avec vide ()
@Akosha: Vous devez fournir le HTML qui figure dans la boîte de dialogue et vous pouvez réinitialiser tous les champs à l'intérieur. La même chose que je fais avec l'ensemble de la boîte de dialogue, mais l'entrée par entrée.
@netaDictos: Je sais que je suis impoli mais pouvez-vous me fournir un exemple de code comment le faire. Je suis limité confus: s
@Akosha. Pas de problème, mais je ne sais pas quel est le HTML à l'intérieur de la boîte de dialogue, pourriez-vous lui fournir? S'il est automatisé, les pls utilisent Firebug
@mplungjan - Lien brisé (erreur 404). Pourriez-vous partager un nouveau lien s'il vous plaît?
Désolé - je n'ai pas de nouveau lien
vérifier Boîte de dialogue Fermer événement. Vous devrez stocker l'état de dialogue, l'état inclura (titre, texte, etc.), si vous la modifiez.
update strong> p> Après avoir lu le commentaire, quoi J'ai eu, donner une réponse en fonction de cela. S'il vous plaît corrigez-moi si je me trompe. P> Avant d'ouvrir le formulaire Dailog, stockez la variable HTML sur la variable locale, puis avant de la fermer, définissez le HTML de retour sur la boîte de dialogue. P> var originalContent;
$("#newDialog-form").dialog({
//Your Code, append following code
open : function(event, ui) {
originalContent = $("#newDialog-form").html();
},
close : function(event, ui) {
$("#newDialog-form").html(originalContent);
}
});
J'ai essayé cette approche et cela fonctionne bien en termes de restauration de la structure HTML. Mais les événements b> attachés à tous les contrôles de la boîte de dialogue semblent être perdus b> car ils ne sont pas enregistrés dans la structure. Je vais essayer d'ajouter une fonction supplémentaire ApplyDialogents () à l'événement ouvert de la boîte de dialogue, pour voir si cela aide.
Vous pouvez nettoyer tout contenu HTML dans DIV en définissant la propriété HTML sur rien.
$("#ElementId").html("");
Pourquoi ne pas créer la boîte de dialogue HTML dans chaque fois que vous l'ouvrez, puis faites ceci: .. Une fois que vous avez terminé, insérez le nouvel enregistrement, généralement après P> < Pré> xxx pré> acclamations! p> p>
Comment réinitialiser les champs de dialogue après que j'ai fini avec son utilisation code> pouvez-vous expliquer plus en détailJe veux juste effacer les données des champs de formulaire lorsque je appuie sur Enregistrer OD Annuler dans le formulaire, alors quand je l'ouvre à nouveau, j'ai une forme claire et ne forme pas avec des données précédentes