\n \u003C/UFormField>\n\n \u003CUFormField label=\"Last name\" name=\"familyName\" required>\n \u003CUInput v-model=\"state.familyName\" />\n \u003C/UFormField>\n \u003C/template>\n\n \u003Ctemplate #footer>\n \u003CUButton label=\"Save\" type=\"submit\" />\n \u003C/template>\n \u003C/UModal>\n \u003C/UForm>\n\u003C/template>\n```",[3038,3041],{"name":3039,"color":3040},"question","d876e3",{"name":3022,"color":3023},4401,"How to use a UForm within a UModal with footer?","2025-06-26T12:51:18Z","https://github.com/nuxt/ui/issues/4401",0.74421465,{"description":3048,"labels":3049,"number":3055,"owner":3028,"repository":3029,"state":3030,"title":3056,"updated_at":3057,"url":3058,"score":3059},"### Environment\n\n- Operating System: Linux\n- Node Version: v20.12.0\n- Nuxt Version: 3.17.3\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: pnpm@8.15.6\n- Builder: -\n- User Config: modules, devtools, compatibilityDate, future, css\n- Runtime Modules: @nuxt/ui@3.1.1\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.1.3\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/gallant-margulis-h6zfnn?file=%2Fapp%2Fpages%2Findex.vue%3A11%2C9&workspaceId=ws_F4rkTtdti87aBypib7R95k\n\n### Description\n\nI'm migrating from v2 to v3 and noticed my global Nuxt error handler no longer works when using v3 components. In the reproduction when I'm calling `throw createError()` on a Nuxt UI button the event doesn't propagate to my `error-handler.js` plugin, however it does when I call the same click handler on a regular `\u003Cbutton>` tag.\nWhen inspecting the console I can see the click handler attached to the Nuxt UI button throws `Uncaught (in promise) H3Error` whereas with a normal button it's not a promise.\nThis used to work just fine with v2 as per this reproduction: https://stackblitz.com/edit/nuxt-ui-ofbazd6t?file=app.vue,plugins%2Ferror-handler.js\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3050,3053,3054],{"name":3051,"color":3052},"bug","d73a4a",{"name":3022,"color":3023},{"name":3025,"color":3026},4237,"throw createError handling in v3 components","2025-05-27T18:04:58Z","https://github.com/nuxt/ui/issues/4237",0.76310825,{"description":3061,"labels":3062,"number":3065,"owner":3028,"repository":3029,"state":3066,"title":3067,"updated_at":3068,"url":3069,"score":3070},"### Description\n\nBased on https://ui.nuxt.com/components/form#error-event there is a way to attach things \"on form error\", like scroll the an element into view.\n\nThis does not help on back-end logic escalating a validation error or something some other logic coming from an external source.\n\nI tried\n\n- throwing an exception within submit, did not trigger the error handler\n- add errors through form refs `setErrors()`, then follow up with a `validate()` but that did nothing as well.\n\nIt would be nice to have a way to trigger the `@error` handler within the `@submit` handler, something in the spirit of:\n\n```js\nasync function onSubmit(event: FormSubmitEvent\u003C...>) {\n try { await api.doLogin() }\n catch (e) { event.fail() }\n}\n```\n\nNot sure this would be a good pattern though. Maybe if an exception is thrown within the submit handler, it could trigger the error handler as well?\n\n### Additional context\n\n_No response_",[3063,3064],{"name":3019,"color":3020},{"name":3022,"color":3023},4124,"closed","UForm: Retrigger error handler on backend errors","2025-07-11T11:01:02Z","https://github.com/nuxt/ui/issues/4124",0.720136,{"description":3072,"labels":3073,"number":3077,"owner":3028,"repository":3029,"state":3066,"title":3078,"updated_at":3079,"url":3080,"score":3081},"### Description\n\nIn v2 there was the option to validate a form only when submitting:\n\n```html\n\u003CUForm\n :schema\n :state\n :validate-on=\"['submit']\"\n>\n```\n\nWith v3 this option is gone. Can it be brought back?\n\n### Additional context\n\nI once read that form validation / show errors on submit and on blur are the best user experiences (depending on usecase) but the first one isnt possible anymore?\n\nRelated: https://github.com/nuxt/ui/issues/3853",[3074,3075,3076],{"name":3019,"color":3020},{"name":3022,"color":3023},{"name":3025,"color":3026},4540,"Docs: Form validate on-submit","2025-07-22T19:11:45Z","https://github.com/nuxt/ui/issues/4540",0.7425303,{"description":3083,"labels":3084,"number":3087,"owner":3028,"repository":3029,"state":3066,"title":3088,"updated_at":3089,"url":3090,"score":3091},"### Environment\n\nDocumentation error.\n\n### Version\n\nv2.19.2\n\n### Reproduction\n\nNot applicable\n\n### Description\n\nUnder this [subheading](https://ui.nuxt.com/components/form#input-events), there is a link to a file [here](https://github.com/nuxt/ui/blob/dev/docs/components/content/examples/FormExampleElements.vue) but it does not have the key `validate-on` on any of the components. I believe that it should be there.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3085,3086],{"name":3051,"color":3052},{"name":3025,"color":3026},2812,"[docs] UForm's validate-on example is incorrect","2025-05-23T16:34:02Z","https://github.com/nuxt/ui/issues/2812",0.75057673,{"description":3093,"labels":3094,"number":3098,"owner":3028,"repository":3029,"state":3066,"title":3099,"updated_at":3100,"url":3101,"score":3102},"### Environment\n\n- Operating System: Darwin\n- Node Version: v20.18.3\n- Nuxt Version: 3.16.2\n- CLI Version: 3.24.1\n- Nitro Version: 2.11.9\n- Package Manager: bun@1.1.28\n- Builder: -\n- User Config: devtools, modules, css, future, compatibilityDate\n- Runtime Modules: @nuxt/ui@3.0.2, @nuxt/eslint@1.3.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.0.2\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-s2opq2ko?file=app/pages/index.vue\n\n### Description\n\nGiven this component nesting:\n\n- `UForm`\n - `UModal`\n - `UForm`\n\nThis is rendered as the following html:\n\n- `UForm` -> `form` - ✅\n - `UModal` -> `div` - ✅ (teleported to root)\n - `UForm` -> `div` - ❌ I am expecting `form`.\n\nI couldn't find a mention in the documentation that this is expected behaviour.\n\nTo reproduce:\n1. Run reproduction\n2. Click \"Open modal\" button\n3. Inspect the nested form element. It's a `div`:\n\n\nI am happy to have a crack at a PR, if you're willing to point me in the right direction 😌\n\n\n### Additional context\n\nFor context, this is our use case:\n* User fills out an onboarding form\n* One field in the onboarding form is business details\n* User has option to populate business details via business number (eg. [DUNS](https://www.dnb.com/en-us/smb/duns.html))\n* Business number field open in modal\n* User can enter business number in form in modal\n* User submits form, it populates state in parent form\n\n### Logs\n\n```shell-script\n\n```",[3095,3096,3097],{"name":3051,"color":3052},{"name":3022,"color":3023},{"name":3025,"color":3026},3913,"[Form] Nested `UForm` in `UModal` is not rendered as `form`","2025-04-16T08:34:48Z","https://github.com/nuxt/ui/issues/3913",0.75092494,{"description":3104,"labels":3105,"number":3109,"owner":3028,"repository":3029,"state":3066,"title":3110,"updated_at":3111,"url":3112,"score":3113},"### Environment\n\nOperating System: mac os\nNode Version: v22.14.0\nLaravel Version: 12.12.0\nNitro Version: -\nPackage Manager: bun 1.2.11\nBuilder: -\nUser Config: -\nRuntime Modules: -\nBuild Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nVue\n\n### Version\n\nv3.1.1\n\n### Reproduction\n\nN/A\n\n### Description\n\nI'm using the example from the documentation for implementing a login and the button behaves like a link. I've already tried as=\"button\" and it doesn't work.\n\n```\n\u003Cscript setup lang=\"ts\">\nimport * as z from 'zod'\nimport type { FormSubmitEvent } from '@nuxt/ui'\n\nconst schema = z.object({\n email: z.string().email('Invalid email'),\n password: z.string().min(8, 'Must be at least 8 characters')\n})\n\ntype Schema = z.output\u003Ctypeof schema>\n\nconst state = reactive\u003CPartial\u003CSchema>>({\n email: undefined,\n password: undefined\n})\n\nconst toast = useToast()\nasync function onSubmit(event: FormSubmitEvent\u003CSchema>) {\n toast.add({ title: 'Success', description: 'The form has been submitted.', color: 'success' })\n console.log(event.data)\n}\n\u003C/script>\n\u003Ctemplate>\n \u003CUForm :schema=\"schema\" :state=\"state\" class=\"space-y-4\" @submit=\"onSubmit\">\n \u003CUFormField label=\"Email\" name=\"email\">\n \u003CUInput v-model=\"state.email\" />\n \u003C/UFormField>\n \u003CUFormField label=\"Password\" name=\"password\">\n \u003CUInput v-model=\"state.password\" type=\"password\" />\n \u003C/UFormField>\n \u003CUButton type=\"submit\">\n Submit\n \u003C/UButton>\n \u003C/UForm>\n\u003C/template>\n```\n\n### Additional context\n\n\n\n### Logs\n\n```shell-script\n\n```",[3106,3107,3108],{"name":3051,"color":3052},{"name":3022,"color":3023},{"name":3025,"color":3026},4095,"UButton works as a link in Inertia","2025-05-07T08:12:17Z","https://github.com/nuxt/ui/issues/4095",0.7517742,{"description":3115,"labels":3116,"number":3120,"owner":3028,"repository":3029,"state":3066,"title":3121,"updated_at":3122,"url":3123,"score":3124},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v22.13.0\n- Nuxt Version: 3.16.1\n- CLI Version: 3.23.1\n- Nitro Version: 2.11.7\n- Package Manager: bun@1.2.4\n- Builder: -\n- User Config: compatibilityDate, devtools, runtimeConfig, nitro, routeRules, modules, ui, supabase, site, feed, sitemap, robots, schemaOrg, image, hub\n- Runtime Modules: @nuxt/ui@3.0.1, @nuxtjs/supabase@1.5.0, @vueuse/nuxt@13.0.0, @nuxt/image@1.10.0, @nuxthub/core@0.8.18, @nuxtjs/sitemap@7.2.9, nuxt-module-feed@1.1.4, @nuxtjs/robots@5.2.8, nuxt-schema-org@5.0.4, nuxt-link-checker@4.3.0\n- Build Modules: -\n------------------------------\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.0.1\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/adoring-gates-fd8q9s\n\n### Description\n\n## Expected behaviour\nValidation should trigger when a user adds or removes items from an input menu that has the `multiple` prop\n\n## Actual behaviour\nValidation seems to trigger when the input menu is opened or closed, but not when items are removed\n\n## Reproduction\n1. Use the codesandbox provided\n2. Add all 4 items to the input\n3. Validation should trigger saying 3 max\n4. Remove an item\n5. **Validation error persists, when it should be gone**\n6. Remove all the items\n7. Add a single item\n8. Remove them item\n9. **Validation error should appear stating 1 item min, but it doesn't**\n\n### Additional context\n\n## Screen capture\n\nhttps://github.com/user-attachments/assets/fccda9b1-2837-4b7d-85ad-5d63480582a1\n\n### Logs\n\n```shell-script\n\n```",[3117,3118,3119],{"name":3051,"color":3052},{"name":3022,"color":3023},{"name":3025,"color":3026},3726,"Form validation with InputMenu doesn't trigger when expected","2025-04-08T19:48:00Z","https://github.com/nuxt/ui/issues/3726",0.7548814,{"description":3126,"labels":3127,"number":3134,"owner":3028,"repository":3028,"state":3066,"title":3135,"updated_at":3136,"url":3137,"score":3138},"### Environment\n\n*package.json*\n```js\n{\n \"name\": \"nuxt-app\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"nuxt build\",\n \"dev\": \"nuxt dev\",\n \"generate\": \"nuxt generate\",\n \"preview\": \"nuxt preview\",\n \"postinstall\": \"nuxt prepare\"\n },\n \"dependencies\": {\n \"@prisma/nuxt\": \"^0.1.2\",\n \"@vueuse/core\": \"^12.0.0\",\n \"@vueuse/nuxt\": \"^12.0.0\",\n \"nuxt\": \"^3.14.1592\",\n \"vue\": \"latest\",\n \"vue-router\": \"latest\"\n },\n \"devDependencies\": {\n \"@nuxt/devtools\": \"npm:@nuxt/devtools-edge@latest\",\n \"@nuxtjs/tailwindcss\": \"^6.12.2\",\n \"@prisma/client\": \"^6.0.1\",\n \"prisma\": \"^6.0.1\"\n }\n}\n\n```\n\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-starter-uquybs?file=nuxt.config.ts,app.vue\n\n### Describe the bug\n\nI have this code that should submit a form but I added `submit.prevent=\"handleSubmit()\"` so this should stop from refreshing.\n\nI tried to reproduce it on stackblitz however everything is working there (including the devtools) but on my local upon clicking create button the page refreshes.\n\n\n\n```html\n\u003Ctemplate>\n\u003Cform @submit.prevent=\"handleSubmit()\" class=\"w-full\">\n\t\u003Cdiv class=\"mb-4\">\n\t\t\u003Cinput\n\t\t\tv-model=\"form.email\"\n\t\t\ttype=\"email\"\n\t\t\tid=\"email\"\n\t\t\tclass=\"w-full p-3 border border-gray-300 rounded mt-1\"\n\t\t\tplaceholder=\"Email address\"\n\t\t/>\n\t\u003C/div>\n\t\u003Cdiv class=\"mb-6\">\n\t\t\u003Cinput\n\t\t\tv-model=\"form.password\"\n\t\t\ttype=\"password\"\n\t\t\tid=\"password\"\n\t\t\tclass=\"w-full p-3 border border-gray-300 rounded mt-1\"\n\t\t\tplaceholder=\"Password\"\n\t\t/>\n\t\u003C/div>\n\t\u003Cdiv class=\"mb-6\">\n\t\t\u003Cinput\n\t\t\tv-model=\"form.confirm_password\"\n\t\t\ttype=\"confirm_password\"\n\t\t\tid=\"confirm_password\"\n\t\t\tclass=\"w-full p-3 border border-gray-300 rounded mt-1\"\n\t\t\tplaceholder=\"Password Confirmation\"\n\t\t/>\n\t\u003C/div>\n\t\u003Cbutton\n\t\ttype=\"submit\"\n\t\tclass=\"w-full bg-blue-600 text-white p-3 rounded hover:bg-blue-700\"\n\t>\n\t\tCreate\n\t\u003C/button>\n\u003C/form>\n\u003C/template>\n\u003Cscript setup>\nconst handleSubmit = async () => {\n\t\n\tif (form.value.password !== form.value.confirm_password) {\n\t\tconsole.log(\"Passwords do not match\");\n\t\talert(\"Passwords do not match\");\n\t\treturn;\n\t}\n\n\tconsole.log(form.value);\n};\n...\n```\n\nhttps://github.com/user-attachments/assets/18ea3431-cadb-4613-a2a3-4703755f2f91\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3128,3131],{"name":3129,"color":3130},"pending triage","E99695",{"name":3132,"color":3133},"needs reproduction","FBCA04",30185,"Page refresh bug","2025-02-03T14:25:51Z","https://github.com/nuxt/nuxt/issues/30185",0.761097,["Reactive",3140],{},["Set"],["ShallowReactive",3143],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fshcuCKdBxg5lyZHtTgJt264lnbWfuPZEfiLh0x7OEVo":-1},"/nuxt/ui/3674"]