# Forms Forms are created using the [bootstrap-vue form component](https://bootstrap-vue.org/docs/components/form) and validated with the [Vuelidate](https://vuelidate.js.org/#sub-installation) plugin. ## Form component When creating a new form, use the `` [form component](https://bootstrap-vue.org/docs/components/form). Use the `.prevent` event modifier on submit to prevent the submit event from reloading the page. ## Form group component The `` [form group component](https://bootstrap-vue.org/docs/components/form-group) pairs form controls with a legend or label, helper text, invalid/valid feedback text, and visual validation state feedback. Learn more about commonly used form components: - [Form checkbox](https://bootstrap-vue.org/docs/components/form-checkbox) - [Form input](https://bootstrap-vue.org/docs/components/form-input) - [Form radio](https://bootstrap-vue.org/docs/components/form-radio) - [Form select](https://bootstrap-vue.org/docs/components/form-select) - [Form file custom component](/guide/components/file-upload) When helper text is provided, use the `` component and `aria-describedby` on the form group component the helper text describes. ## Validation For custom form validation messages, disable browser native HTML5 validation by setting the `novalidate` prop on ``. Use Vuelidate to check the form validation state and add custom validation messages in the `` component. When creating a new form add the `VuelidateMixin` to the `scripts` block and import any [validators](https://vuelidate.js.org/#validators) needed such as: `required`, `requiredIf`, etc. The use of built-in validators is preferred. ## Complete form A complete form will look like this. ```vue ```