Używam bardzo prostego dijit/form/select na mojej stronie internetowej, dodaję kilka opcji za pomocą kodu w następujący sposób:
option1 = { value: "o1", label: "option 1", selected: false };
option2 = { value: "o2", label: "option 2", selected: true };
this.mySelect.addOption([option1, option2]);
To działa. Jednak gdy próbuję wyczyścić mój dijit/formularz/select za pomocą tego kodu:
this.mySelect.removeOption(this.mySelect.getOption());
Wszystkie moje opcje zniknęły z wyjątkiem wybranej.
Próbuję użyć .reset lub nawet .value = '', ale nic nie działało.
Jak więc usunąć wszystkie opcje z dijit/form/select?
2
skerdreux
14 listopad 2018, 22:02
1 odpowiedź
Najlepsza odpowiedź
Właściwie odpowiedź jest dość prosta, ale niezbyt dobrze udokumentowana (it's pretty hard to find, like all dojo related stuff)
this.mySelect.removeOption(lang.clone(option1));
this.mySelect.removeOption(lang.clone(option2));
this.mySelect.store = null;
this.mySelect.set('value', '');
this.mySelect._setDisplay(""); //This line alone should do the trick
Podobnie jak w komentarzach, ostatnia linia powinna wystarczyć, ale w ten sposób możesz być pewien, że element
select
zostanie wyczyszczony.
Demo: Demo JSFiddle
3
Hackerman
14 listopad 2018, 22:21