2009-12-24 2 views
0

J'utilise la saisie semi-automatique jquery pour remplir la liste des utilisateurs. Dans le document.ready, j'appelle l'auto-complétion json pour obtenir la liste des utilisateurs.problème avec jquery autocomplete

Lorsque je tape un nom d'utilisateur valide (ou quoi que ce soit) dans les zones de texte avant la fin de l'appel json autocomplete, les options de saisie semi-automatique ne s'affichent pas (la saisie semi-automatique ne fonctionne pas également).

Et quand je clique en dehors de la zone de texte et essayant encore, son fonctionnement ..

Ce qui peut être le problème avec la saisie semi-automatique lorsque je tente de saisir avant la fin d'appel autocomplete JSON?

Le code de saisie semi-automatique est:

$.getJSON("/User/GetAllUsers/?t=" + new Date(), {}, 
     function(data) { 
      if (data != null) { 
       $("#UserName").autocomplete(data, { mustMatch: false, matchContains: 4, max: 50, 
        formatItem: function(row) { 
         return row.FirstName + " " + row.LastName + " [" + row.LoginName + "]"; 
        }, 
        formatResult: function(row) { 
         return row.FirstName + " " + row.LastName + " [" + row.LoginName + "]"; 
        } 
       }); 
      } 
     }); 
+0

pouvez-vous poster du code, peut-être le coument.ready où vous lier la saisie semi-automatique? Le déclencheur – Pharabus

Répondre

0

Si vous tapez dans la zone de texte, puis les finitions d'appel JSON, et après avoir réglé votre saisie semi-automatique ..

EDIT: oubliez ce que je dis: Vous peut déclencher manuellement une recherche avec la méthode search

Essayez de déclencher un événement de modification dans la zone de texte à la place? http://docs.jquery.com/Events/trigger

+0

ne fonctionne pas non plus. Il ne montre pas les valeurs sauf si je me concentre sur un autre contrôle et que je reviens au contrôle du nom d'utilisateur. – Prasad

+0

Pouvez-vous alors faire un flou() et un focus()? –

0

La méthode de rappel qui définit la saisie semi-automatique est exécutée uniquement après l'achèvement de l'appel getJSON.

Vous pouvez effectuer l'une des deux opérations suivantes: 1. Créez un mécanisme de blocage qui bloque l'interface utilisateur/la zone de texte jusqu'à la fin de l'appel json. En substance, lorsque le raccordement automatique a été terminé. 2. Utilisez le plugin autocomplete pour interroger directement la méthode GetAllUsers:

$("#UserName").autocomplete("/User/GetAllUsers/?t=" + new Date(), { mustMatch: false, matchContains: 4, max: 50, 
       formatItem: function(row) { 
        return row.FirstName + " " + row.LastName + " [" + row.LoginName + "]"; 
       }, 
       formatResult: function(row) { 
        return row.FirstName + " " + row.LastName + " [" + row.LoginName + "]"; 
       } 
      }); 

Vous devrez alors filtrer les utilisateurs du côté serveur à l'aide du queryParameter (q) qui contiendra le terme de recherche nécessaire.