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