prefs: managing different input types. related to #14
This commit is contained in:
parent
bc3dff856e
commit
f2e4db183c
1 changed files with 37 additions and 2 deletions
|
|
@ -2,7 +2,23 @@ function saveOptions(e) {
|
|||
e.preventDefault();
|
||||
let options = {};
|
||||
document.querySelectorAll(".option-input").forEach(element => {
|
||||
switch (element.type) {
|
||||
case 'checkbox':
|
||||
options[element.id] = element.checked;
|
||||
break;
|
||||
case 'number':
|
||||
options[element.id] = element.valueAsNumber;
|
||||
break;
|
||||
case 'text':
|
||||
options[element.id] = element.value.trim();
|
||||
break;
|
||||
default:
|
||||
if (element.tagName === 'SELECT') {
|
||||
options[element.id] = element.value;
|
||||
}else{
|
||||
console.log('Unhandled input type:', element.type);
|
||||
}
|
||||
}
|
||||
});
|
||||
browser.storage.sync.set(options);
|
||||
}
|
||||
|
|
@ -10,7 +26,26 @@ function saveOptions(e) {
|
|||
function restoreOptions() {
|
||||
function setCurrentChoice(result) {
|
||||
document.querySelectorAll(".option-input").forEach(element => {
|
||||
switch (element.type) {
|
||||
case 'checkbox':
|
||||
element.checked = result[element.id] || false;
|
||||
break;
|
||||
case 'number':
|
||||
element.value = result[element.id] || 0;
|
||||
break;
|
||||
case 'text':
|
||||
element.value = result[element.id] || '';
|
||||
break;
|
||||
default:
|
||||
if (element.tagName === 'SELECT') {
|
||||
element.value = result[element.id] || '';
|
||||
if (element.value === '') {
|
||||
element.selectedIndex = -1;
|
||||
}
|
||||
}else{
|
||||
console.log('Unhandled input type:', element.type);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue