Select default value after hiding 'all' option
This commit is contained in:
parent
e8c1641f3f
commit
8f582892cd
@ -22,11 +22,15 @@ export default class uSelect {
|
||||
/**
|
||||
* @param {HTMLSelectElement} element Select element
|
||||
* @param {string=} head Optional header text
|
||||
* @param {string=} all Optional all option text
|
||||
*/
|
||||
constructor(element, head) {
|
||||
constructor(element, head, all) {
|
||||
this.element = element;
|
||||
this.hasAllOption = false;
|
||||
this.allText = '';
|
||||
if (all && all.length) {
|
||||
this.allText = all;
|
||||
}
|
||||
if (head && head.length) {
|
||||
this.head = head;
|
||||
} else {
|
||||
@ -44,6 +48,10 @@ export default class uSelect {
|
||||
}
|
||||
}
|
||||
|
||||
get selected() {
|
||||
return this.element.value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} text
|
||||
*/
|
||||
@ -68,8 +76,13 @@ export default class uSelect {
|
||||
}
|
||||
|
||||
hideAllOption() {
|
||||
const isSelectedAll = this.selected === uSelect.allValue;
|
||||
this.hasAllOption = false;
|
||||
this.remove(uSelect.allValue);
|
||||
if (isSelectedAll) {
|
||||
this.selected = this.hasHead ? uSelect.headValue : '';
|
||||
this.element.dispatchEvent(new Event('change'));
|
||||
}
|
||||
}
|
||||
|
||||
addHead() {
|
||||
|
@ -248,7 +248,7 @@ describe('Select tests', () => {
|
||||
expect(select.element.options[1].text).toBe(options[0].listText);
|
||||
expect(select.element.options[2].value).toBe(options[1].listValue);
|
||||
expect(select.element.options[2].text).toBe(options[1].listText);
|
||||
expect(select.element.options[2].selected).toBe(true);
|
||||
expect(select.element.options[0].selected).toBe(true);
|
||||
});
|
||||
|
||||
it('should remove option from select elements', () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user