diff --git a/packages/core/src/dom/dom.ts b/packages/core/src/dom/dom.ts index d6d8f023..fdc0e1bf 100644 --- a/packages/core/src/dom/dom.ts +++ b/packages/core/src/dom/dom.ts @@ -171,8 +171,8 @@ export const getNextNativeValue = ({ } if (element.type === "number") { - if (typeof currentValue === "number") return Number(derivedValue); - return String(derivedValue); + if (typeof currentValue === "string") return String(derivedValue); + return Number(derivedValue); } return derivedValue; diff --git a/packages/react/src/test/input-types.test.tsx b/packages/react/src/test/input-types.test.tsx index a14a2d2a..25a99343 100644 --- a/packages/react/src/test/input-types.test.tsx +++ b/packages/react/src/test/input-types.test.tsx @@ -31,6 +31,32 @@ describe("number inputs", () => { expect(screen.getByTestId("age-value").textContent).toEqual("254"); }); + it("no default value", async () => { + const TestComp = () => { + const form = useForm({ + validator: successValidator, + }); + + return ( +
+ ); + }; + render(