diff --git a/src/browser/webapi/element/html/Input.zig b/src/browser/webapi/element/html/Input.zig
index b7bb14f2..f3740073 100644
--- a/src/browser/webapi/element/html/Input.zig
+++ b/src/browser/webapi/element/html/Input.zig
@@ -290,8 +290,8 @@ pub fn innerInsert(self: *Input, str: []const u8, page: *Page) !void {
// if the input is fully selected, replace the content.
const new_value = try arena.dupe(u8, str);
try self.setValue(new_value, page);
- self._selection_start = 1;
- self._selection_end = 1;
+ self._selection_start = @intCast(new_value.len);
+ self._selection_end = @intCast(new_value.len);
self._selection_direction = .none;
},
.partial => |range| {
diff --git a/src/browser/webapi/element/html/TextArea.zig b/src/browser/webapi/element/html/TextArea.zig
index b0b0ae1c..bcac5cb2 100644
--- a/src/browser/webapi/element/html/TextArea.zig
+++ b/src/browser/webapi/element/html/TextArea.zig
@@ -138,8 +138,8 @@ pub fn innerInsert(self: *TextArea, str: []const u8, page: *Page) !void {
// if the text area is fully selected, replace the content.
const new_value = try arena.dupe(u8, str);
try self.setValue(new_value, page);
- self._selection_start = 1;
- self._selection_end = 1;
+ self._selection_start = @intCast(new_value.len);
+ self._selection_end = @intCast(new_value.len);
self._selection_direction = .none;
},
.partial => |range| {