Est-il un moyen dynamique d'ajax ajouter des éléments par le biais de jquery choisi plugin?
Je suis en train d'utiliser "Choisi" plugin par récolte (http://harvesthq.github.com/chosen/), et il fonctionne pour l'ensemble statique de choix que je suis de passage. Cependant, ce que je veux, c'est que chaque fois que quelqu'un les types de quelque chose qui n'est pas dans le pré-rempli options, il doit l'envoyer au serveur en tant que nouvelle option et sur le succès de la réponse, je veux pas seulement ajouter que, à la validité de la liste d'options, mais aussi de rendre le sélectionner.
Le rechargement d'options est assez simple:
//In ajax response
var newOption = new Option("Text", __value__);
$("#tagSelection").append(newOption);
$("#tagSelection").trigger("liszt:updated");
Cependant, je ne sais pas comment faire "Choisi" plugin choisir ce que la valeur. J'aimerais faire quelque chose comme
$("#tagSelection").trigger("liszt:select:__value__");
ou quelque chose de similaire.
Des suggestions?
(ps: je suis en train de construire un "balisage" du plugin basé sur choisi. Donc, si le tag de la saisie n'existe pas, il va l'ajouter au serveur, puis sélectionnez tout de suite.)
OriginalL'auteur Shreeni | 2012-03-13
Vous devez vous connecter pour publier un commentaire.
Je viens de faire. Je n'aimais pas Shreeni ligne pour le paramètre sélectionné (pas d'infraction), alors je suis allé avec
personnellement, je pense que c'est un peu plus propre (testé avec multiselect boîte et il fonctionne très bien)
Cela m'a beaucoup aidé, je vous remercie!
OriginalL'auteur Manatherin
Ce sont l'ensemble des changements que j'ai fait pour le choisi du plugin (version jquery) afin de résoudre ce problème
La ce.new_term_to_be_added maintient actuellement de type string qui n'est pas parmi les pré-défini les options.
Les options.addNewElementCallback est le rappel à la fonction d'appel pour leur permettre de la traiter (de l'envoyer au serveur etc.) et il doit être synchrone. Ci-dessous est le squelette:
La newElement est un élément jquery - la dernière ajouté li objet à la liste des options.
En faisant cela.result_highlight = newElement; et ce.result_select(evt); je dis à la Choisi le plugin pour la sélectionner. Cela fonctionne si c'est une sélection unique ou une multi-sélection. Rifky la solution fonctionne uniquement pour les sélectionner.
Pourquoi ne pas vous bifurquez le principal projet sur github avec cette extension de capacités , ou de ne pas envoyer de demande d'extraction de dépôt principal?
Je ne pouvais pas obtenir que cela fonctionne, parce que je ne pourrais pas appliquer ce: ce.result_highlight = newElement; ce.result_select(evt); à partir d'une autre fonction, dois-je le faire en substituant choisi? qu'est-ce dans ce cas? Je reçois mon elemente ajouté, mais j'ai également le premier élément de la liste est ajouté. lors de l'utilisation de seulement $d'entrée.trigger("choisis:mise à jour");
Ressembler à la
no_results
fonction a été changé un peu comme de la 1.8.XOriginalL'auteur Shreeni
Une fourchette contenant la fonction que vous voulez a été créé ici. Cette fourche est appelé le koenpunt fourche.
Vous pouvez suivre la discussion est pour cette fonctionnalité sur les harvesthq github site
Mon résumé de ce qui s'est passé:
OriginalL'auteur lance-java
Depuis la version 1.0 de certaines des suggestions ci-dessus ne sont pas pertinentes. Ici, c'est tout ce qui est nécessaire:
Les options sont les suivantes:
Cela signifie que si "Orange" n'est pas dans la liste des fruits, il serait tout simplement invite:
La fonction de rappel doit inscrire le nouveau terme par tous les moyens nécessaires et renvoie l'ID (ou de la valeur dans le contexte de la sous-élément select) pour la nouvelle option.
OriginalL'auteur LauriE
dans votre ajax réponse, essayez de
OriginalL'auteur Rifky
je pense que ce n'est pas la meilleure pratique, mais ce code fonctionne pour moi. le retour de données a une balise html
<option>
OriginalL'auteur Basci Bsu
Je le fais tout simplement de cette façon et ça fonctionne parfaitement:
OriginalL'auteur artgrohe
Vous n'avez pas besoin de beaucoup de stress , garder les choses simples. Vous devez ajouter votre ajax réponse dans la boîte de sélection de html et ensuite mettre à jour choisi.
Cela va ressembler..
Code:
OriginalL'auteur Niraj Pathak