diff --git a/packages/browser-sync-client/lib/effects/set-element-toggle-value.effect.ts b/packages/browser-sync-client/lib/effects/set-element-toggle-value.effect.ts index c335dbba6..62fc7e4cf 100644 --- a/packages/browser-sync-client/lib/effects/set-element-toggle-value.effect.ts +++ b/packages/browser-sync-client/lib/effects/set-element-toggle-value.effect.ts @@ -22,7 +22,9 @@ export function setElementToggleValueEffect( match.checked = event.checked; } if (event.tagName === "SELECT") { - match.value = event.value; + const nativeInputValueSetter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(match), 'value').set; + nativeInputValueSetter.call(match, event.value); + match.dispatchEvent(new Event('change', { bubbles: true })); } } }) diff --git a/packages/browser-sync-client/lib/effects/set-element-value.effect.ts b/packages/browser-sync-client/lib/effects/set-element-value.effect.ts index b1b7731eb..d0d4be1d9 100644 --- a/packages/browser-sync-client/lib/effects/set-element-value.effect.ts +++ b/packages/browser-sync-client/lib/effects/set-element-value.effect.ts @@ -15,7 +15,9 @@ export function setElementValueEffect( const elems = document.getElementsByTagName(event.tagName); const match = elems[event.index]; if (match) { - (match as HTMLInputElement).value = event.value; + const nativeInputValueSetter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(match), 'value').set; + nativeInputValueSetter.call(match, event.value); + match.dispatchEvent(new Event('change', { bubbles: true })); } }) );