dojo et dynamiquement les options ajoutées à la bibliothèque dijit.forme.sélectionnez
- Je utiliser dojo 1.8.2 et voici mon problème (j'ai vu cette et cette question, mais ils eren pas utile) :
Mon JS
code reçoit à partir du serveur de certaines données dans JSON
format. Avec cela, j'ai créer dynamiquement certaines options pour dijit.form.select
:
var select = registry.byId('zgloszenieDoFirmyEdycja');
for (var uzytkownik in dane.uzytkownicy){
var idUzytkownika = dane.uzytkownicy[uzytkownik]['_id']['$oid'];
var imie = dane.uzytkownicy[uzytkownik].imie;
var nazwisko = dane.uzytkownicy[uzytkownik].nazwisko;
var wybrany = (idUzytkownika == id);
var opcja = {};
opcja.label = imie + ' ' + nazwisko;
opcja.value = idUzytkownika;
opcja.selected = wybrany;
console.log(wybrany);
console.log(idUzytkownika + ' | ' + imie + ' ' + nazwisko);
console.log(opcja);
select.addOption(opcja);
/*select.addOption({
label: imie + ' ' + nazwisko,
value: idUzytkownika,
selected: wybrany
});*/
}
C'est ma sortie de la console:
false
5077d2a1e4b0f5734a9850a1 | zero zero
Object { label="zero zero", value="5077d2a1e4b0f5734a9850a1", selected=false}
true
50c0776f096aa0e726d221a3 | raz raz
Object { label="raz raz", value="50c0776f096aa0e726d221a3", selected=true}
false
50d019c3096aa862c6898cdb | dwa dwa
Object { label="dwa dwa", value="50d019c3096aa862c6898cdb", selected=false}
Mais après la dijit.form.select
est mis à jour, le selected
paramètre devient en quelque sorte mixte et est définie à vrai, non pour l'option que je l'ai mis, mais pour le premier:
console.log(select);
...
Object[Object { label="zero zero", value="5077d2a1e4b0f5734a9850a1", selected=true},
Object { label="raz raz", value="50c0776f096aa0e726d221a3", selected=false},
Object { label="dwa dwa", value="50d019c3096aa862c6898cdb", selected=false}
]
...
Je ne comprends pas pourquoi cela se produit, toutes les définitions?
OriginalL'auteur maialithar | 2012-12-18
Vous devez vous connecter pour publier un commentaire.
Recherche dans le code source de
dijit/form/_FormSelectWidget
le problème est causé par le fait, que si aucune option n'est sélectionnée, alors la première option est sélectionnée par défaut. Au moment où vous ajoutez la première option, cette condition est remplie et la première option est sélectionnée.Solution de contournement: ajouter des options à la fois comme un tableau:
Le voir en action: http://jsfiddle.net/phusick/BfTXC/
OriginalL'auteur phusick