2010-09-13 3 views
2

Ok, donc j'ai un champ autocomplete heere qui fait une requête ajax à chaque frappe ... Mais le .focusout() devrait tuer la saisie semi-automatique car intuitivement si l'utilisateur quitte le champ et se déplace sur le champ suivant il ne devrait pas vous donner des suggestions car vous avez déjà quitté le terrain. Auriez vous des idées pour faire ça. Voici mon code. J'utilise cette autocomplete plugin et voici mon code les informations d'identification. Entrez un artiste et quitter le terrain pour voir ce que je veux direLa mise au point peut-elle arrêter l'appel?

email: [email protected] passe: test12

$('#request_artist').autocomplete({ 
    serviceUrl: '<%= ajax_path("artistName") %>', 
    minChars:1, 
    width: 300, 
    delimiter: /(,|;)\s*/, 
    deferRequestBy: 0, //miliseconds 
    params: { artists: 'Yes' }, 
}); 

Répondre

1

Essayez d'utiliser abort():

var theCall = $('#request_artist').autocomplete({ 
        serviceUrl: '<%= ajax_path("artistName") %>', 
        minChars:1, 
        width: 300, 
        delimiter: /(,|;)\s*/, 
        deferRequestBy: 0, //miliseconds 
        params: { artists: 'Yes' }, 
       }); 
// ... 
// When you decide you want to cancel the call 
$('#request_artist').blur(function() { 

    theCall.abort(); 

}); 

tiré de ce previous SO answer. Ce qui précède ne fonctionnera que si, .autoComplete() utilise une instance XMLHttpRequest pour effectuer l'appel.