JQuery nettoyer la saisie semi-automatique zone de liste déroulante valeur
J'ai utilisé jquery zone de liste modifiable pour l'auto-complétion et j'ai besoin de nettoyer sa valeur.
Je suis arrivé à une solution qui est comme ceci: http://jsfiddle.net/BbWza/30/
Le problème est que le code ci-dessous efface toutes les zones de texte de tous les combos de l'écran. Je voudrais effacer UN seul combo (disons la première, par exemple).
$('.ui-autocomplete-input').focus().val('');
Bien qu'il n'existe qu'un seul bouton de lien, il n'est pas question que combo sera autorisé en tant que seul un est.
La solution devrait fonctionner pour la N de combos dans l'écran. E. g. Chaque bouton doit vider son combo correspondante.
OriginalL'auteur ClayKaboom | 2011-07-21
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter des id aux champs générés par l'ajout de cette ligne, comme la dernière ligne de
_create()
:Maintenant, vous pouvez sélectionner les champs avec les id:
Je pense que c'est le plus générique de la solution. De cette façon, je ne dépendent pas de liens, et je peux faire n'importe quel autre composant clair de ma zone de liste déroulante. Merci!!!!
OriginalL'auteur JJJ
Effacer juste un seul combo, vous devez le sélectionner avec l'id:
avec votre code vous de sélectionner toutes les zones de liste modifiables parce que vous êtes à l'aide d'un sélecteur de classe.
MODIFIER si vous voulez faire de deux boutons (un pour chaque zone de liste déroulante) vous pouvez faire:
violon ici: http://jsfiddle.net/BbWza/39/
$( '#combobox' )
ne fonctionne pas, il sélectionne le champ de sélection à partir de laquelle la zone de liste déroulante est créé, et non pas la zone de liste déroulante.vous avez raison, j'ai édité la réponse d'une solution pour l'instant
OriginalL'auteur Nicola Peluchetti
Votre jsfiddle est un peu ambiguë qui de zone de liste déroulante doit être effacé - il y a deux zones de liste déroulante, mais seulement un lien clair, de sorte qu'il n'est pas évident si le lien est censé effacer juste une ou deux zones de liste déroulante.
Je soupçonne que dans le monde réel que chaque zone de liste modifiable est de lien clair. La sélection de la zone de texte à droite de votre lien clair tout dépend de votre code html. Un simple serait le cas où le lien est le suivant frère de votre
<select>
élément:Vous pouvez créer des combos dans un appel à l'aide de classe. Puis créer le clair sur les gestionnaires de tous à la fois. Le gestionnaire d'utilisation
.prevAll(".ui-autocomplete-input")
de trouver son associée zone de texte.Travail de démonstration à jsfiddle
Si votre lien n'est pas un frère ou une sœur de votre zone de liste modifiable, c'est ok. Soit trouver son parent qui est un frère ou une sœur et d'utiliser l'approche décrite ci-dessus. Ou, si cela ne fonctionne pas, trouver la mère commune à la fois le combo et le lien. Cela ne fonctionne que si le parent commun ne contient qu'un seul combo et un lien:
Vous utilisez
.closest(".comboContainer")
et.find(".ui-autocomplete-input")
:Travail de démonstration à jsfiddle
La bonne chose à propos de ces techniques est que le lien n'a pas besoin de connaître le numéro d'identification de la zone de liste déroulante. On peut juste en déduire à partir de l'html. Cela rend très facile à déplacer grâce à des combos autour et en ajouter de nouvelles.
Deux suggestions:
.autocomplete()
. Cela vous empêche également de modifier votre mise en œuvre plus tard. L'ajout d'un "clair" méthode permettrait de simplifier votre gestionnaire de clic à juste$(this).prevAll("select.combo").combobox("clear")
.OriginalL'auteur gilly3
Ainsi, dans l'exemple que claire la dernière zone de liste déroulante:
$('.ui-autocomplete-input').last().focus().val('');
Ce serait clairement le premier:
$('.ui-autocomplete-input').first().focus().val('');
vous où le droit alors j'ai juste enlevé.
OriginalL'auteur dkroy
Vous pouvez le désactiver en cas de "fermeture" de la saisie semi-automatique
OriginalL'auteur João Pedro Hudinik
Comment donner une touche clear pour autocombobox s'il vous plaît dites-moi
Vous pouvez ajouter des id aux champs générés par l'ajout de cette ligne, comme la dernière ligne de
_create()
:Maintenant, vous pouvez sélectionner les champs avec les id:
OriginalL'auteur prath Nik