From 164cf9f2f8e6248dc101ed897c2ce7db911f323c Mon Sep 17 00:00:00 2001 From: Titus Kristiansen <titusk@stud.ntnu.no> Date: Fri, 29 Apr 2022 15:09:40 +0200 Subject: [PATCH] Validate errors showing in register --- .../FormComponents/RegisterForm.vue | 100 +++++++++++++++--- 1 file changed, 87 insertions(+), 13 deletions(-) diff --git a/src/components/FormComponents/RegisterForm.vue b/src/components/FormComponents/RegisterForm.vue index 250a3ac..e01d8ba 100644 --- a/src/components/FormComponents/RegisterForm.vue +++ b/src/components/FormComponents/RegisterForm.vue @@ -13,15 +13,43 @@ type="email" placeholder="E-post adresse" /> + <!-- error message --> + <div + class="text-red-600 text-sm" + v-for="(error, index) of v$.email.$errors" + :key="index" + > + <div + class="text-red-600 text-sm" + v-show="showError" + id="emailErrorId" + > + {{ error.$message }} + </div> + </div> </div> - <div class="w-full"> + <div> <input class="block w-full px-4 py-2 mt-2 text-gray-700 placeholder-gray-500 bg-white border rounded-md dark:bg-gray-800 dark:border-gray-600 dark:placeholder-gray-400 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-opacity-40 focus:outline-none focus:ring focus:ring-blue-300" v-model="password" id="password" type="password" placeholder="Passord" /> + <!-- error message --> + <div + class="text-red-600 text-sm" + v-for="(error, index) of v$.password.$errors" + :key="index" + > + <div + class="text-red-600 text-sm" + v-show="showError" + id="passwordErrorId" + > + {{ error.$message }} + </div> + </div> </div> <div> @@ -31,6 +59,20 @@ type="password" placeholder="Bekreft passord" /> + <!-- error message --> + <div + class="text-red-600 text-sm" + v-for="(error, index) of v$.confirmPassword.$errors" + :key="index" + > + <div + class="text-red-600 text-sm" + v-show="showError" + id="confirmPasswordErrorId" + > + {{ error.$message }} + </div> + </div> </div> <div> @@ -41,6 +83,20 @@ type="text" placeholder="Fornavn" /> + <!-- error message --> + <div + class="text-red-600 text-sm" + v-for="(error, index) of v$.firstName.$errors" + :key="index" + > + <div + class="text-red-600 text-sm" + v-show="showError" + id="firstNameErrorId" + > + {{ error.$message }} + </div> + </div> </div> <div> @@ -50,6 +106,20 @@ type="text" placeholder="Etternavn" /> + <!-- error message --> + <div + class="text-red-600 text-sm" + v-for="(error, index) of v$.lastName.$errors" + :key="index" + > + <div + class="text-red-600 text-sm" + v-show="showError" + id="lastNameErrorId" + > + {{ error.$message }} + </div> + </div> </div> <div> @@ -59,6 +129,20 @@ type="text" placeholder="Adresse" /> + <!-- error message --> + <div + class="text-red-600 text-sm" + v-for="(error, index) of v$.address.$errors" + :key="index" + > + <div + class="text-red-600 text-sm" + v-show="showError" + id="addressErrorId" + > + {{ error.$message }} + </div> + </div> </div> </div> @@ -67,16 +151,6 @@ </div> </form> </div> - <ul data-test="errorMessageList"> - <li v-if="errorMessage" data-test="customErrorMsg">{{ errorMessage }}</li> - <li v-for="error of v$.$errors" :key="error.$uid"> - <!-- {{ error.$validator }} --> - Field - {{ error.$property }} - has error: - {{ error.$message }} - </li> - </ul> </template> <script> @@ -95,8 +169,8 @@ export default { setup: () => ({ v$: useVuelidate() }), data() { return { + showError: false, errorMessage: "", - loading: false, email: "", password: "", confirmPassword: "", @@ -125,7 +199,7 @@ export default { methods: { async submit() { //Display loading symbol - this.loading = true; + this.showError = true; //Validate form const result = await this.v$.$validate(); -- GitLab