Merge pull request #61 from ayufan-research/fix-reset-params

Propagate reset to defaults to other forms
This commit is contained in:
teachingtechYT
2020-08-19 08:15:37 +10:00
committed by GitHub

View File

@ -39,7 +39,7 @@ function resetFormToDefaults(form) {
setPersistedValue(element, null);
if (element.defaultValue) {
setFormItemValue(element, element.defaultValue);
setFormItemValue(element, element.defaultValue, true);
}
}
}
@ -72,7 +72,7 @@ function getFormItemValue(element) {
}
}
function setFormItemValue(element, value) {
function setFormItemValue(element, value, forcePropagate = false) {
if (element.type == "radio") {
var realValue = (value == element.value);
@ -97,11 +97,18 @@ function setFormItemValue(element, value) {
element.value = value;
}
element.dispatchEvent(persistChangeEvent);
// This will trigger `persistFormValue`
// that will propagate change into other forms
// but still execute `onchange=` assigned to elements
if (forcePropagate)
element.dispatchEvent(new Event('change'));
else
element.dispatchEvent(persistChangeEvent);
}
function persistFormValue(event) {
// ignore cascade updates
// ignore cascade updates generated by `setFormItemValue`
// unless `forcePropagate=true`
if (persistChangeEvent == event) {
return;
}