J'ai une forme avec un nombre variable de champs autocomplete utilisant la même liste de sélection. Ces champs sont ajoutés et supprimés selon les besoins. Chaque fois qu'un paramètre de la page est modifié, i (Essayez de) mettre à jour la liste des champs pour tous les champs en appelant Unbind () code> puis
autocomplete () code> avec un nouveau paramètre ajouté à l'URL.
$('input.foo').unbind().autocomplete(url?new_param=bar);
6 Réponses :
Le plug-in Autocomplete ajoute une fonction appelée UNUUTOCOMPOMPETE () pour supprimer le fichier autocomplete () à partir de champs qui l'avez, cela devrait donc fonctionner si vous modifiez votre code sur:
$('input.foo').unautocomplete().autocomplete('url?new_param=bar');
Hey, merci d'avoir répondu dantky. J'ai essayé Unutocomplete, mais cela n'a pas fonctionné. Je l'ai fait, cependant, utilisez l'enlèvement ("événements") et cela a fonctionné! $ ("INPUT.FOO ') Notez que si vous faites cela, tout autre événement attaché à cet élément sera épuisé.
@Cinematic Yeah, regardant dans le code du plug-in Autocomplecte, il est regrettable qu'ils nuisent à l'événement "Clé", mais pas aux événements clic, focus ou d'autres événements qui sont ajoutés à l'entrée dans le cadre de l'autoocomplète. S'ils avaient pris la peine de suivre, il s'agirait simplement d'aller .unbind ('KeyPress.Autocomplete »). Unbind (' click.Autocomplète'). etc. Bien que cela soit tous dans l'UNUUTOCOMPOMPOMPOMTOME () Je suppose.
Nice ... merci pour la solution.
Cette solution entraîne une ignifuge des éléments sur la touche DOWN dans IE lorsqu'il est rechargé.
Je répondrais correctement avec la solution de travail car il semble que @Cinematic le gêne.
Il semble que cette fonction a été supprimée puisque le plug-in JQuery Autocomplecte a obtenu un successeur, l'UI JQuery UI.
Essayez ceci
Je pense que votre problème est que vous n'avez pas de formulaire renfermant le champ de saisie automatique. Si vous regardez dans le code de jQuery.Autocomplete.js il fait $ (INPUT.FORM) .unbind (". Autocomplete"); sur Unutocomplete (), ce qui signifie que l'entrée doit vivre dans une étiquette de formulaire afin de travailler. P>
$ (INPUT.FORM) ne serait pas exécuté. $ ("INPUT.FORM ') sélectionnerait des balises d'entrée avec le formulaire de classe, comme
jQuery fournit une méthode FlushCache () ( http://docs.jquerery.com/plugins/autocomplete < / a>) Pour éliminer le contenu déjà apparié par la totalité automatique. p>
Par exemple, si l'élément HTML utilisé est
$ ("# txtelement"). Fluxhache (); code> et cela résoudrait le problème. P>
Dommage que cela soit si bas dans la liste. Votre conseil a travaillé comme un charme. Voté.
+1. La méthode FLUSHCACHACHE fonctionne sur les données sans effacer les paramètres.
Si vous utilisez des options, ajoutez-la de cache-longueur et définissez-la sur 1. Ce paramètre ne stocke aucun des enregistrements retournés. Croyez-moi, cela a rendu ma vie meilleure ... pour toutes les 5 minutes. P>
Juste pour être clair dans la déclaration ci-dessus: ce paramètre ne stockera aucun des enregistrements précédemment renvoyés. (Désolé!) Il effectuera une nouvelle récupération des enregistrements.
$(target).autocomplete("destroy");
Cette réponse est la voie actuelle de le faire.
Cela ne fonctionne pas pour des éléments DOM ajoutés de manière dynamique. Cette réponse fonctionne: Stackoverflow.com/a/6585109/304209
Il y a aussi $ (cible) .Autocomplete ("Désactiver"); voir l'API
Comment vérifier si un autocomplete est actif ou non, avant de détruire?