Remplir les options de boîte de sélection sur un clic avec Javascript / Jquery avec des données Json
Je suis encore à apprendre Jquery et un peu confus, avec la tâche que j'ai sur mes mains.
Semble comme une tâche simple...
J'ai une boîte que je veux remplir avec des Options sur cliquez sur. Je ne veux pas qu'il soit peuplé au chargement de la page, que lorsque quelqu'un demande à voir la liste. Aussi, il doit être rempli qu'une seule fois. Je n'ai vraiment pas envie de la demande à sortir CHAQUE fois que quelqu'un étend la liste.
J'imagine que je vais probablement avoir un appel de fonction dans mon élément Select
<select id="usersList" name="usersList" onclick="getUsers()">
Et ensuite avoir un Javascript getUsers() de la fonction faire un appel à mon Json GetUsers() ActionMethod pour obtenir cette liste.
Comment ?
Quelque chose comme...?
function getUsers()
{
getJSON("/Users/GetUsers", null, function (data){}
}
ou JQuery?...
$("usersList").click(
$.getJSON("/Users/GetUsers", null, function (data) {}
)
Je dois mentionner que j'ai vu ce post:
remplir selectlist avec les données json dans JQuery lorsque le selectlist est chargé (pas de document)
Mais j'ai besoin d'aide pour mettre tout cela ensemble, s'il vous plaît.
Je vous remercie à l'avance!
source d'informationauteur Shenaniganz
Vous devez vous connecter pour publier un commentaire.
Voici le code javascript, je voudrais l'utiliser pour remplir la boîte de sélection.
Je vous recommande de déclencher cette sur le chargement de la page et non pas lorsque l'utilisateur clique sur la zone de sélection. jQuery AJAX est asynchrone par défaut (comme il faut) donc il y aura un moment ou deux, où la zone de sélection est vide et cela peut considérablement perturber l'utilisateur.
Était-ce la mesure de votre question ou avez-vous besoin d'aide avec le MVC côté? Si vous êtes en utilisant ASP.Net MVC, il est en fait un résultat spécifique type de JsonResult qui rend la création de JSON contrôleur des méthodes un peu plus simple, car ils ne nécessitent pas de correspondant vues. Il vous permet également d'utiliser des données anonymes structures qui rend la méthode spécifique de projections un peu plus simple.
MODIFIER Ici est la méthode de base pour retourner une structure JSON jQuery code ci-dessus va comprendre. Notez que les propriétés
u.Username
etu.ID
dépendent de vos Utilisateurs objet.Je voudrais vous conseillons cependant de renoncer à cette approche, dès que possible, et aller avec une norme JSON structure du message. Celui que j'utilise est quelque chose comme ceci:
Voici quelques raisons pour cela:
En aucun cas devriez-vous envisager de ma structure comme la façon de le faire. Clairement les besoins de votre application peut être très différente de la mienne. De cohérence, plus que n'importe quel particulier de la structure est la leçon à tirer ici.
EDIT: 06/01/2016 - de Voir que les gens sont toujours à la recherche de cette réponse. Concernant le remplissage de la liste déroulante, je recommande d'utiliser un cadre contraignant. Personnellement, je préfère Knockout.JS pour savoir comment facile et léger, il est bien Angular.JS pour faire le travail aussi bien. Mis à part cela le reste de cette réponse est encore assez à jour.
EDIT: 8/10/2016 - Code manquait une virgule.
Je voudrais utiliser le jQuery option.
Depuis
append()
opérations sont relativement "cher", vous pouvez aussi tout simplement construire une chaîne qui contient l'info et l'ajouter juste une fois comme ça:Ici est un jsfiddle qui montre comment déterminer si la liste de sélection est vide.