You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/Online College Election System/javascript/studentregistrationform.js

138 lines
6.0 KiB

class FormValidation{
formValues = {
username : "",
email : "",
phonenumber : "",
password : "",
confirmpassword : ""
}
errorValues = {
usernameErr : "",
emailErr : "",
phonenumberErr : "",
passwordErr : "",
confirmpasswordErr : ""
}
showErrorMsg(index,msg){
const form_group = document.getElementsByClassName('form-group')[index]
form_group.classList.add('error')
form_group.getElementsByTagName('span')[0].textContent = msg
}
showSuccessMsg(index){
const form_group = document.getElementsByClassName('form-group')[index]
form_group.classList.remove('error')
form_group.classList.add('success')
}
getInputs(){
this.formValues.username = document.getElementById('username').value.trim()
this.formValues.email = document.getElementById('email').value.trim()
this.formValues.phonenumber = document.getElementById('phonenumber').value.trim()
this.formValues.password = document.getElementById('password').value.trim()
this.formValues.confirmpassword = document.getElementById('confirmpassword').value.trim()
}
validateUsername(){
if(this.formValues.username === ""){
this.errorValues.usernameErr = "* Please Enter Your Name"
this.showErrorMsg(0,this.errorValues.usernameErr)
} else if(this.formValues.username.length <= 4 ){
this.errorValues.usernameErr = "* Username must be atleast 5 Characters"
this.showErrorMsg(0,this.errorValues.usernameErr)
} else if(this.formValues.username.length > 14){
this.errorValues.usernameErr = "* Username should not exceeds 14 Characters"
this.showErrorMsg(0,this.errorValues.usernameErr)
} else {
this.errorValues.usernameErr = ""
this.showSuccessMsg(0)
}
}
validateEmail(){
//abc@gmail.co.in
const regExp = /^([a-zA-Z0-9-_\.]+)@([a-zA-Z0-9]+)\.([a-zA-Z]{2,10})(\.[a-zA-Z]{2,8})?$/
if(this.formValues.email === ""){
this.errorValues.emailErr = "* Please Enter Valid Email"
this.showErrorMsg(1,this.errorValues.emailErr)
} else if(!(regExp.test(this.formValues.email))){
this.errorValues.emailErr = "* Invalid Email"
this.showErrorMsg(1,this.errorValues.emailErr)
} else {
this.errorValues.emailErr = ""
this.showSuccessMsg(1)
}
}
validatePhonenumber(){
const phoneno = /^\d{10}$/
if(this.formValues.phonenumber === ""){
this.errorValues.phonenumberErr = "* Please Enter your Phone Number"
this.showErrorMsg(2,this.errorValues.phonenumberErr)
} else if(phoneno.test(this.formValues.phonenumber)){
this.errorValues.phonenumberErr = ""
this.showSuccessMsg(2)
} else {
this.errorValues.phonenumberErr = "* Invalid Phone Number"
this.showErrorMsg(2,this.errorValues.phonenumberErr)
}
}
validatePassword(){
if(this.formValues.password === ""){
this.errorValues.passwordErr = "* Please Provide a Password"
this.showErrorMsg(3,this.errorValues.passwordErr)
} else if(this.formValues.password.length <= 4){
this.errorValues.passwordErr = "* Password must be atleast 5 Characters"
this.showErrorMsg(3,this.errorValues.passwordErr)
} else if(this.formValues.password.length > 10){
this.errorValues.passwordErr = "* Password should not exceeds 10 Characters"
this.showErrorMsg(3,this.errorValues.passwordErr)
} else {
this.errorValues.passwordErr = ""
this.showSuccessMsg(3)
}
}
validateConfirmpassword(){
if(this.formValues.confirmpassword === ""){
this.errorValues.confirmpasswordErr = "* Invalid Confirm Password"
this.showErrorMsg(4,this.errorValues.confirmpasswordErr)
} else if(this.formValues.confirmpassword === this.formValues.password && this.errorValues.passwordErr === ""){
this.errorValues.confirmpasswordErr = ""
this.showSuccessMsg(4)
} else if(this.errorValues.passwordErr){
this.errorValues.confirmpasswordErr = "* An error occurred in Password Field"
this.showErrorMsg(4,this.errorValues.confirmpasswordErr)
} else {
this.errorValues.confirmpasswordErr = "* Password Must Match"
this.showErrorMsg(4,this.errorValues.confirmpasswordErr)
}
}
alertMessage(){
const {usernameErr , emailErr , phonenumberErr , passwordErr , confirmpasswordErr}= this.errorValues
if(usernameErr === "" && emailErr === "" && phonenumberErr === "" && passwordErr === "" && confirmpasswordErr === ""){
swal("Registration Successful","ThankYou , "+this.formValues.username,"success").then(() => {
console.log(this.formValues)
this.removeInputs()
})
} else {
swal("Give Valid Inputs","Click ok to Continue" ,"error")
}
}
removeInputs(){
const form_groups = document.getElementsByClassName('form-group')
Array.from(form_groups).forEach(element => {
element.getElementsByTagName('input')[0].value = ""
element.getElementsByTagName('span')[0].textContent = ""
element.classList.remove('success')
})
}
}
const ValidateUserInputs = new FormValidation()
document.getElementsByClassName('form')[0].addEventListener('submit' , event => {
event.preventDefault()
ValidateUserInputs.getInputs()
ValidateUserInputs.validateUsername()
ValidateUserInputs.validateEmail()
ValidateUserInputs.validatePhonenumber()
ValidateUserInputs.validatePassword()
ValidateUserInputs.validateConfirmpassword()
ValidateUserInputs.alertMessage()
})