2012-12-03 1 views
13

J'utilise la saisie semi-automatique de jQuery UI avec du AJAX (les données ne sont pas extraites avant d'avoir cessé de taper). Je voudrais le faire une fois les données trouvées, la saisie semi-automatique apparaîtra alors comme un résultat de recherche. Cela fonctionne, cependant seulement quand je commence à taper de nouveau (la liste déroulante ne se déclenche pas jusqu'à ce que je tape car elle n'est pas initialisée jusqu'à ce que j'arrête de taper).Déclenchement automatique de la saisie semi-automatique jQuery

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'activer autocomplete, mais il échoue.

+0

Vous utilisez _autocomplete avec quelques AJAX_. Dans ce cas, le popup apparaîtra quand (i) vous avez tapé les caractères minLength (ii) les millisecondes de retard ont passé depuis votre dernière frappe (iii) les résultats Ajax ont été récupérés et traités. Êtes-vous sûr de comprendre cela? –

Répondre

30

Le search method devrait faire l'affaire:

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

Fiddle

+1

Ah! OMG, j'ai utilisé: \t \t $ ('input # mainSearchBox'). Saisie semi-automatique ('search', 'demo-value'); J'aurais dû retirer cela ... – PolishHurricane

+0

haha, la minLength est la clé ici. ne fonctionne pas sans cela. –

4

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

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 peut être trouvé dans la source du combobox example sur le site de démonstration jquery autocomplete (lignes 127-141).

Questions connexes