Y a-t-il une méthode pour moi d'appeler une fonction après avoir cliqué sur le bouton de réinitialisation dans le formulaire, et je veux dire après, de sorte que le formulaire soit d'abord réinitialisé, puis ma fonction appelée. Les bouillons d'événements normaux appelleraient ma fonction et ne réinitialisaient que le formulaire. Maintenant, je voudrais éviter de se installer afin de le faire.
Ce dont j'ai besoin, c'est appeler une fonction lorsqu'un formulaire est réinitialisé car j'utilise uniforme et uniforme doit être mis à jour lorsque les valeurs changent. P>
Pour le moment, je le fais comme ceci: P>
//Reset inputs in a form when reset button is hit
$("button[type='reset']").live('click', function(){
elem = this;
//Sadly we need to use setTimeout to execute this after the reset has taken place
setTimeout(function(){
$.each($(elem).parents('form').find(":input"), function(){
$.uniform.update($(this));
});
}, 50);
});
5 Réponses :
Les formulaires HTML ont un événement OnReset, vous pouvez ajouter votre appel à l'intérieur:
$('form').bind('reset', function() {
$.each($(this).find(":input"), function(){
$.uniform.update($(this));
});
});
Sur mon navigateur (Firefox 8), la liaison à réinitialiser code> exécute toujours le gestionnaire avant que les champs ne soient réinitialisés (violon ici ). Ce comportement est probablement requis pour prendre en charge prévendefault () code> sur l'événement code> réinitialiser.
TRUE, vous pouvez également lier à réinitialiser code>. N'apparaît pas d'une ou une autre manière des incendies après que la réinitialisation soit terminée et de doute qu'il y ait un moyen efficace de le faire en plus d'utiliser un délai comme il fait maintenant.
Il y a longtemps, j'ai travaillé dans le débogage d'un plugin associé à Google IE et j'ai résolu l'erreur principale avec une truc de bulle. C'est pourquoi je pense que je pense que je pense immédiatement dans cette solution pour votre problème (bien sûr, devrait être croisé-navigateur): de cette façon, vous pouvez capturer le bouillonnement avec $ ('# capture_bubble') après la réinitialisation événement être déclenché. p> Vous pouvez faire un test rapide avec: p> Veuillez noter: this.form.reeset (); em> (changement fabriqué en raison d'une observation de Jeff-Wilbert) p> p>
Tandis que dans la théorie que la solution semble bonne et en regardant le journal de la console, l'effet de bulletage fonctionne dans cette réinitialisation est appelé d'abord et connecté suivi de la capture_bubble, mais le formulaire ne rétablit pas réellement lorsque le bouton de réinitialisation est cliqué et les valeurs encore rester à l'intérieur de la capture_bubble, j'ai créé un violon ici testant ceci: jsfiddle.net/awfap essentiellement je viens d'ajouter Une alerte à l'intérieur de l'événement Capture_Bubble Pour lire la valeur d'une zone d'entrée dans le formulaire uniquement après la réinitialisation a été cliquée à l'aide d'une variable booléenne.
@ Jeff-Wilbert Cet outil Jsfiddle est génial !. Veuillez vérifier http://jsfiddle.net/awfap/3/ Je viens de forcer un événement de réinitialisation. Qu'est-ce que tu penses?
Ouais jsfiddle est génial; Je viens d'en découvrir moi-même un couple il y a quelques jours d'être neuf ici moi-même. C'est génial pour tester et créer des démos de travail pour les personnes. Cela étant dit que votre nouveau changement de forçage de la réinitialisation semble fonctionner génial et dans chaque navigateur, très agréable. +1 à votre réponse
@ Jeff-Wilbert +1 merci. bonnes observations et un bon outil présenté.
Si la réinitialisation est forcée. Avez-vous besoin de bouillonnant?
Je n'ai pas encore testé dans tous les navigateurs, mais vous pouvez faire votre propre commande dans un événement de clic:
http://jsfiddle.net/vol7ron/9kcnl/1/
Vous n'avez pas besoin d'attendre 50 millisecondes. Si vous utilisez SettimeOut avec un délai d'attente de zéro, cela signifie efficacement «pousser ce code sur la pile d'événements». Étant donné que la réinitialisation de formulaire est garantie d'abord, le code de la sécurité est garanti (les interprètes javascript bien élevés) pour avoir accès aux valeurs de formulaire que vous souhaitez (post-réinitialisation). Vous devriez pouvoir utiliser le code ci-dessous, sans culpabilité.
Voir window.postMessage pour un moyen plus moderne de faire ça
Je viens de rencontrer ce problème. L'événement de réinitialisation incendie avant de réinitialiser les valeurs. Je voudrais en savoir plus à ce propos. Avez-vous une idée où je pouvais lire sur ce comportement particulier?
C'est une excellente référence: développeur.mozilla.org/en- US / Docs / Apprendre / JavaScript / ...
Essayez cette solution
Objectif: p>
Exemple: p>
Pourquoi ne pas avoir votre propre
réinitialiser () code> méthode?Pourquoi éviter de se installer? Cette réponse suggère que c'est la meilleure façon: Stackoverflow.com/a/21641295/421243