J'essaie de réinitialiser l'attribut de valeur réelle d'une entrée afin qu'il puisse être réinitialisé à cette valeur si la réinitialisation, pas nécessairement la valeur d'origine lorsque le formulaire a été chargé. Le problème est que ces changements ne semblent pas prendre effet. J'ai essayé les deux: ainsi que .... p> aucun de ceux-ci ne modifie réellement la valeur " " code> attribut de l'entrée, qui est utilisé lorsqu'un formulaire est réinitialisé. Le problème est que si une personne sauve un formulaire (via AJAX), puis la modifie et appuie réinitialisée (sans enregistrer cette heure), il revenait aux valeurs d'origine de la page chargée avec, et non les valeurs enregistrées par la page. C'est ce que j'essaie d'obtenir. Je sais qu'il y a des moyens autour de cela (magasin dans des variables locales ou quelque chose), mais une solution de jQuery serait bien meilleure. Des idées ?? p> p>
5 Réponses :
Lorsque vous faites quelque chose comme ça:
var temp = $(this).val()); $(this).val(temp);
Il suffit d'utiliser chose.value = "foo"; code> Vérifiez si cela fonctionne lorsque la chose est un objet JQuery ainsi que d'un objet DOM ordinaire. en utilisant
attr ('valeur', $ (ceci) .val ()) code> ne fonctionnera pas comment vous voulez p>
J'ai proposé une solution pour cela ...
Lors de la sauvegarde d'un formulaire (via AJAX, sur le raccord de réussite): P>
// Reset form if($('#myForm input:first').attr('savedValue')!=undefined) { // Have saved values, reset to last saved values $('#myForm input').each(function() { $(this).val($(this).attr('savedValue')); }); } else { // No saved values, reset form $('#myForm')[0].reset(); }
Cela a fonctionné super pour moi merci! Je définit le fichier SavedValue sur .keyup () du champ de texte. Ensuite, lorsque je l'ajax le champ de texte, il tire la valeur la plus récente, qui est toujours enregistrée dans SavoDValue, puis je suis en mesure de réinitialiser les champs avec leurs valeurs précédentes avec ce joli petit script sur le succès - $ ('# MyPorm Entrée ') .fait (fonction () {$ (ceci) .val ($ (ceci) .attr ("sauvévalue"));}); Merci beaucoup!
Mieux encore mieux qu'une variable locale, vous pouvez utiliser les méthodes de données JQuery pour stocker les valeurs de réinitialisation avec l'élément à réinitialiser.
Lors de l'enregistrement: p>
$(this).val($(this).data("ResetValue"));
Cela ressemble à une truc fraîche, voici une autre.
Vous pouvez modifier le DOM en remplaçant l'élément entier, donc au lieu de: p> Vous pouvez utiliser : p>
ou $ ('# my_input'). Remplacewith ('