Je développe un formulaire et j'utilise jQuery UI Autocomplete. Lorsque l'utilisateur sélectionne une option, je souhaite que la sélection apparaisse dans une plage ajoutée à la <p>
balise parent . Ensuite, je veux que le champ soit effacé plutôt que rempli avec la sélection.
J'ai le span qui semble très bien, mais je ne parviens pas à dégager le champ.
Comment annuler l'action de sélection par défaut de jQuery UI Autocomplete?
Voici mon code:
var availableTags = ["cheese", "milk", "dairy", "meat", "vegetables", "fruit", "grains"];
$("[id^=item-tag-]").autocomplete({
source: availableTags,
select: function(){
var newTag = $(this).val();
$(this).val("");
$(this).parent().append("<span>" + newTag + "<a href=\"#\">[x]</a> </span>");
}
});
Faire simplement ne $(this).val("");
fonctionne pas. Ce qui est exaspérant, c'est que presque la fonction exacte fonctionne bien si j'ignore la saisie semi-automatique et que je prends simplement des mesures lorsque l'utilisateur tape une virgule en tant que telle:
$('[id^=item-tag-]').keyup(function(e) {
if(e.keyCode == 188) {
var newTag = $(this).val().slice(0,-1);
$(this).val('');
$(this).parent().append("<span>" + newTag + "<a href=\"#\">[x]</a> </span>");
}
});
Le véritable résultat final est d'obtenir la saisie semi-automatique pour travailler avec plusieurs sélections. Si quelqu'un a des suggestions à ce sujet, il sera le bienvenu.