To answer my own question. The following code does the trick:
include karax / prelude
from dom import getElementById, setAttribute
type
Model = object
value_1: string
value_2: string
var model: Model
proc setInput(ev: Event, node:VNode): auto =
model.value_1 = $node.text
model.value_2 = "Auto Text"
let el = dom.document.getElementById("input_2")
el.setAttribute("value", model.value_2)
proc createDom(): VNode =
result = buildHtml(tdiv):
input(id = "input_1", onchange=setInput)
input(id = "input_2")
input(id = "input_3", value = "Initial Value")
p: text $model
setRenderer createDom
Run