7
votes

Définir l'attribut valeur réelle d'une entrée avec jQuery

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: xxx

ainsi que .... xxx

aucun de ceux-ci ne modifie réellement la valeur " " 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 ??


0 commentaires

5 Réponses :


4
votes

Lorsque vous faites quelque chose comme ça:

var temp = $(this).val());
$(this).val(temp);


0 commentaires

0
votes

Il suffit d'utiliser chose.value = "foo"; 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 ()) ne fonctionnera pas comment vous voulez


0 commentaires

1
votes

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();    
}


1 commentaires

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!



0
votes

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"));


0 commentaires

2
votes

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: xxx

Vous pouvez utiliser : xxx


1 commentaires

ou $ ('# my_input'). Remplacewith ('');