web-dev-qa-db-fra.com

Les modifications apportées au personnalisateur de widget ne déclenchent pas l'enregistrement et la publication

Certains de nos widgets sont conviviaux, ils fonctionnent donc sur la page de personnalisation et prennent en charge les prévisualisations de widgets. Habituellement, lorsque vous mettez à jour un widget, le bouton de sauvegarde devient utilisable et passe à "enregistrer et publier".

Cependant, j'utilise du javascript (entrée de jeton http://loopj.com/jquery-tokeninput/ ) sur l'entrée de texte du widget, afin que les utilisateurs puissent choisir parmi une liste d'options de manière agréable. Le problème est que les mises à jour de ce champ ne déclenchent pas l'option de sauvegarde et de publication. Il n'y a donc aucun moyen de sauvegarder les modifications.

Quelqu'un a-t-il une idée?

Le champ de base du formulaire est:

<input name="the_token_input" id="" class="the_token_input" value="This will be the token input" /> 

Une fois que vous avez initialisé l'entrée du jeton javascript, un nouvel élément est créé, qui assume le rôle de l'entrée, comme suit:

<ul class="token-input-list">
  <li class="token-input-token">Choice 1</li>
  <li class="token-input-token">Choice 2</li>
  <li class="token-input-token">Choice 3</li>
</ul>

Une fois que vous apportez une modification, cela n'affecte pas le champ de saisie d'origine, alors je suppose que c'est pourquoi la page ne pense pas que quoi que ce soit ait été modifié ...

5
danbrown

Je rencontrais un problème similaire avec l'un de mes widgets personnalisés. Il semble que les valeurs de champ insérées dynamiquement ne déclenchent pas la mise à jour du formulaire de widget. J'ai fini par ajouter ce qui suit au js qui insère la valeur dynamique:

$(input).trigger('change');

où input est le champ que vous mettez à jour.

Je ne sais pas s'il existe un meilleur moyen de le faire, mais cela fonctionne pour moi.

6
SkyShab

Assurez-vous de déclencher un événement change sur l'élément input. Sinon, le personnalisateur ne saura pas qu'il possède une valeur mise à jour qui doit être mise à jour dans les paramètres du widget.

1
Weston Ruter