add register form validation
This commit is contained in:
parent
79da4105fc
commit
bf7c0a8445
1 changed files with 37 additions and 14 deletions
|
|
@ -6,22 +6,24 @@
|
|||
</div>
|
||||
|
||||
<!-- username and password forms -->
|
||||
<div id="registerBox">
|
||||
<form id="registerBox" @submit.prevent="submit">
|
||||
<!-- username -->
|
||||
<input class="input" type="text" v-model="email" placeholder="email" />
|
||||
<input class="input" type="text" v-model="email" placeholder="email" required/>
|
||||
|
||||
<!-- password -->
|
||||
<input class="input" type="password" v-model="password" placeholder="Password" />
|
||||
<input class="input" type="password" v-model="password" placeholder="Password" required/>
|
||||
|
||||
<!-- re-enter passoword -->
|
||||
<input class="input" type="text" v-model="password2" placeholder="Re-enter password" />
|
||||
</div>
|
||||
<input class="input" type="password" v-model="password2" placeholder="Re-enter password" required/>
|
||||
|
||||
<!-- submit button; position: fixed -->
|
||||
<button class="button" @click.prevent="submit">Submit</button>
|
||||
<!-- submit button; position: fixed -->
|
||||
<button class="button" type="submit">Submit</button>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- back to login button: position: fixed -->
|
||||
<button class="button2" @click.prevent="switchView">Back to login</button>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
@ -55,6 +57,24 @@ export default defineComponent({
|
|||
const { setToken } = useAuth();
|
||||
const router = useRouter();
|
||||
|
||||
const re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
|
||||
|
||||
const passwordMatch = () => {
|
||||
let match = false;
|
||||
if (password.value == password2.value) {
|
||||
match = true;
|
||||
}
|
||||
return match;
|
||||
}
|
||||
|
||||
const validate = () => {
|
||||
let valid = false;
|
||||
if (re.test(email.value) && passwordMatch()) {
|
||||
valid = true;
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
const submit = async () => {
|
||||
|
||||
const payload: RegisterPayload = {
|
||||
|
|
@ -62,13 +82,15 @@ export default defineComponent({
|
|||
email: email.value,
|
||||
password: password.value,
|
||||
};
|
||||
|
||||
try {
|
||||
await invoke(payload);
|
||||
setToken(data.value, true);
|
||||
router.push({ name: "home" });
|
||||
} catch(e) {
|
||||
console.log('Failed to register.')
|
||||
|
||||
if (validate()) {
|
||||
try {
|
||||
await invoke(payload);
|
||||
setToken(data.value, true);
|
||||
router.push({ name: "home" });
|
||||
} catch(e) {
|
||||
console.log('Failed to register.')
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -79,6 +101,7 @@ export default defineComponent({
|
|||
return {
|
||||
email,
|
||||
password,
|
||||
password2,
|
||||
switchView,
|
||||
submit,
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue