fix selected values in list-multi form fields (#1101)

This commit is contained in:
ChaosKid42 2018-05-12 16:45:40 +02:00 committed by JC Brand
parent a33b451b73
commit 63764a7d51
2 changed files with 20 additions and 2 deletions

View File

@ -814,5 +814,21 @@
const replacement = 'geo:$1,$2';
return text.replace(_converse.geouri_regex, replacement);
};
u.getSelectValues = function(select) {
var result = [];
var options = select && select.options;
var opt;
for (var i=0, iLen=options.length; i<iLen; i++) {
opt = options[i];
if (opt.selected) {
result.push(opt.value || opt.text);
}
}
return result;
};
return u;
}));

View File

@ -58,8 +58,10 @@
let value;
if (field.getAttribute('type') === 'checkbox') {
value = field.checked && 1 || 0;
} else if (field.tagName == "textarea") {
} else if (field.tagName == "TEXTAREA") {
value = _.filter(field.value.split('\n'), _.trim);
} else if (field.tagName == "SELECT") {
value = u.getSelectValues(field);
} else {
value = field.value;
}
@ -96,7 +98,7 @@
return tpl_select_option({
'value': value,
'label': option.getAttribute('label'),
'selected': _.startsWith(values, value),
'selected': values.includes(value),
'required': !_.isNil(field.querySelector('required'))
})
}