2009-06-24 5 views
1

Existe-t-il un type de plugin pour cela? Le serveur renvoie le contenu JSON contenant les étiquettes et les valeurs d'option.Mise à jour des options de boîte de sélection via jQuery AJAX?

Je peux le faire manuellement, je voulais juste voir s'il y avait un moyen plus facile.

+0

Vous pouvez configurer le script distant pour qu'il renvoie simplement une sélection entièrement formatée (y compris les options) si vous souhaitez remplacer l'élément entier. Mais mettre à jour les éléments de l'option "à la main" ne représente pas plus de quelques lignes de code, donc je ne sais pas si un plugin jQuery est approprié. – inkedmn

Répondre

2

boucle à travers le JSON et le faire sur chaque paire texte/valeur (fonctionne bien cross-browser):

var opt = document.createElement('option'); 
opt.value = "someValue"; 
opt.appendChild(document.createTextNode("someText")); 
$('#mySelect').append(opt); 
+0

ooo plus agréable ........ – Damien

1

Je littéralement juste boucler si les éléments de la liste, et générer le code HTML, avant d'insérer le code HTML dans l'élément. Il y a probablement un plugin maintenant vous le mentionnez.

var selectHtml = '' 
foreach obj Item in jsonobject.list) 
    selecthtml += "<option value="+ item.value +">" + item.label + "</option>" 

$('selectList').html(selectHtml); 

Ou quelque chose de similaire

0

J'utilise javascript, façon jQuery et AJAX pour mettre à jour la boîte de sélection avec des données JSON de la façon suivante. C'est assez propre et concis et fait le travail parfaitement.

$.getJSON(url, data, function(responseJSON){ // GET JSON value from the server 
    $("#mySelect option").remove(); // Remove all the <option> child tags from the select box. 
    $.each(responseJSON.rows, function(index, item) { //jQuery way of iterating through a collection 
     $('#mySelect').append($('<option>') 
      .text(item.label) 
      .attr('value', item.value)); 
       }); 
      }); 
Questions connexes