diff --git a/src/components/input/input.tsx b/src/components/input/input.tsx index da58a44d6..a4d1751b9 100644 --- a/src/components/input/input.tsx +++ b/src/components/input/input.tsx @@ -176,7 +176,15 @@ export class Input { end: number, selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve' ) { - return this.input.setRangeText(replacement, start, end, selectMode); + const returnValue = this.input.setRangeText(replacement, start, end, selectMode); + + if (this.value !== this.input.value) { + this.value = this.input.value; + this.slChange.emit(); + this.slInput.emit(); + } + + return returnValue; } handleChange() { diff --git a/src/components/textarea/textarea.tsx b/src/components/textarea/textarea.tsx index 7d72b2999..ae6e1511e 100644 --- a/src/components/textarea/textarea.tsx +++ b/src/components/textarea/textarea.tsx @@ -154,7 +154,16 @@ export class Textarea { end: number, selectMode: 'select' | 'start' | 'end' | 'preserve' = 'preserve' ) { - return this.textarea.setRangeText(replacement, start, end, selectMode); + const returnValue = this.textarea.setRangeText(replacement, start, end, selectMode); + + if (this.value !== this.textarea.value) { + this.value = this.textarea.value; + this.setTextareaHeight(); + this.slChange.emit(); + this.slInput.emit(); + } + + return returnValue; } handleChange() {