2013-08-13 1 views
1

J'utilise actuellement bootstrap editable pour la partie frontale de mon application.Effacer les bootstrap editable forms

Voir plugin: http://vitalets.github.io/x-editable/index.html

Ce que je fais est chargement des données sur une page via Ajax et permettant à chaque élément de la page pour être modifiable. Par exemple; Je charge un utilisateur sur une page et permet que son prénom, son nom de famille et sa date de naissance soient modifiables. Parce que je charge via Ajax, quand un deuxième utilisateur est chargé par exemple ou troisième et j'essaye d'éditer le prénom etc, je continue à obtenir les valeurs du premier utilisateur chargé initialement.

Je présume qu'il peut s'agir d'un cache. J'ai essayé de régler l'affichage sur la fonction et même le texte automatique.

Y at-il de toute façon que je peux réinitialiser ou effacer le formulaire modifiable?

voir exemple de code ci-dessous:

function editable(obj) { 
    $('#title, #lastName, #firstName).editable('option', { 
     pk: obj.lId, 
     placement: 'bottom', 
     emptytext: 'Empty', 
     display: function(value) { 
     $(this).text(value); 
     }, 
     validate: function(value) { 
     if ($.trim(value) === '') { 
      return 'This field is required'; 
     } 
     } 
    }); 
} 
+0

les différents utilisateurs d'informations sont affichées sur la même page publique? – Newben

+0

Oui. admin peut rechercher un utilisateur et cette information est chargée via ajax. – pundit

+0

Vous montrez votre code pour l'initialisation de x-editable, mais pas comment vous mettez à jour les champs avec ajax. S'il vous plaît montrer ce code, car il semble que c'est là que votre erreur est – lightswitch05

Répondre

2

Si l'on suppose que obj est votre nouvel utilisateur, et il contient le titre, le nom et prénom du nouvel utilisateur, tout ce que vous devez faire est de définir les valeurs des objets x modifiable:

$('#title').editable('setValue', obj.title); 
$('#lastName').editable('setValue', obj.lastName); 
$('#firstName').editable('setValue', obj.firstName); 

la raison pour laquelle votre exemple ne fonctionne pas parce que x modifiable sépare l'affichage de la valeur réelle. Votre fonction display est appelée chaque fois que l'utilisateur modifie une valeur x-editable. Par défaut, x-editable affiche la valeur définie. Mais peut-être que la valeur interne est différente d'une valeur affichée, c'est pour cela que la fonction display est utilisée - elle n'a aucun impact sur la valeur réelle, juste l'affichage de la valeur.

X-éditable a beaucoup de différentes méthodes que vous pouvez tirer profit, vous pouvez les trouver sur l'onglet « Méthodes » ici: http://vitalets.github.io/x-editable/docs.html#editable

+0

Merci cela a fonctionné pour moi. – pundit