mirror of
https://github.com/teachingtechYT/teachingtechYT.github.io.git
synced 2024-08-30 18:23:26 +00:00
Propagate reset to defaults to other forms
This commit is contained in:
@ -39,7 +39,7 @@ function resetFormToDefaults(form) {
|
|||||||
|
|
||||||
setPersistedValue(element, null);
|
setPersistedValue(element, null);
|
||||||
if (element.defaultValue) {
|
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") {
|
if (element.type == "radio") {
|
||||||
var realValue = (value == element.value);
|
var realValue = (value == element.value);
|
||||||
|
|
||||||
@ -97,11 +97,18 @@ function setFormItemValue(element, value) {
|
|||||||
element.value = value;
|
element.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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);
|
element.dispatchEvent(persistChangeEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
function persistFormValue(event) {
|
function persistFormValue(event) {
|
||||||
// ignore cascade updates
|
// ignore cascade updates generated by `setFormItemValue`
|
||||||
|
// unless `forcePropagate=true`
|
||||||
if (persistChangeEvent == event) {
|
if (persistChangeEvent == event) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user