web-dev-qa-db-fra.com

Déclencher manuellement la complétion automatique jQuery

J'utilise jQuery UI Autocomplete avec un peu de AJAX (les données ne sont extraites qu'après avoir cessé de taper). Je voudrais faire en sorte qu'une fois les données trouvées, la saisie semi-automatique apparaîtra alors comme résultat de la recherche. Cela fonctionne, mais seulement lorsque je recommence à taper (la liste déroulante ne se déclenche pas avant que je tape, car elle n'est initialisée qu'après avoir arrêté de taper).

Mon code:

var availableTags = [
    "Perl",
    "PHP",
    "Python",
    "Ruby"
];
$('input#mainSearchBox').autocomplete({
    source: availableTags,
        minLength: 0
});
    $('input#mainSearchBox').data('autocomplete').menu.active;

La dernière partie était une tentative d'activation de la saisie semi-automatique, mais elle a échoué.

13
TheFrack

La méthode search devrait faire l'affaire:

$('input#mainSearchBox').autocomplete("search");

Fiddle

36
Thorsten

Vous pouvez utiliser le script suivant pour basculer manuellement la saisie semi-automatique:

var textbox = $('input#mainSearchBox');
var autocompleteBox = textbox.autocomplete('widget');

// toggle the autocomplete widget
autocompleteBox.is(':hidden') ? 
    textbox.autocomplete('search', textbox.val()).focus() :
    autocompleteBox.hide();

Ce code se trouve dans le code source de exemple sur le site de démonstration jquery autocomplete (lignes 127 à 141).

4
jbabey

Pour https://github.com/devbridge/jQuery-Autocomplete , vous pouvez utiliser:

$('input#mainSearchBox').autocomplete("getSuggestions", $('input#mainSearchBox').val())
0
Salma Gomaa