dojo并动态添加了dijit.form.select的选项
发布时间:2020-12-16 21:18:00 所属栏目:百科 来源:网络整理
导读:我使用dojo 1.8.2,这是我的问题(我看过 this和 this问题,但他们没有帮助): 我的JS代码从服务器接收一些JSON格式的数据.有了它,我动态地为dijit.form.select创建了一些选项: var select = registry.byId('zgloszenieDoFirmyEdycja');for (var uzytkownik in
我使用dojo 1.8.2,这是我的问题(我看过
this和
this问题,但他们没有帮助):
我的JS代码从服务器接收一些JSON格式的数据.有了它,我动态地为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 });*/ } 这是我的控制台输出: 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} 但是在更新dijit.form.select之后,所选参数会以某种方式混淆并设置为true,而不是我为其设置的选项,但对于第一个: console.log(select); ... Object[Object { label="zero zero",selected=true},Object { label="raz raz",selected=false},Object { label="dwa dwa",selected=false} ] ... 我不明白为什么会发生这种线索? 解决方法
查看dijit / form / _FormSelectWidget的源代码,问题是由于如果未选择任何选项,则默认情况下会选择第一个选项.当您添加第一个选项时,将满足此条件并选择第一个选项.
解决方法:一次添加所有选项作为数组: var select = registry.byId("select1"); option1 = { value: "o1",label: "option 1",selected: false }; option2 = { value: "o2",label: "option 2",selected: true }; select.addOption([option1,option2]); // add all options at once as an array 看到它在行动:http://jsfiddle.net/phusick/BfTXC/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |