From 95c871a02b9684c52e554a2b05aee8c41ade3741 Mon Sep 17 00:00:00 2001 From: Iqbal <iqbalkhowarizmi@ymail.com> Date: Thu, 5 Oct 2017 21:21:36 +0700 Subject: [PATCH] Added some validation mechanism. --- src/view/register.html | 4 ++-- src/view/script.js | 37 ++++++++++++++++++++++++++++++++----- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/view/register.html b/src/view/register.html index c8c6c82..4e51a2f 100644 --- a/src/view/register.html +++ b/src/view/register.html @@ -19,7 +19,7 @@ <section id="register-main"> <div id="register-panel"> - <form name="registerForm" method="post" action="../controller/RegisterController.php"> + <form id="register-form" name="registerForm" method="post" action="../controller/RegisterController.php"> <fieldset> <legend>Sign Up</legend> <table> @@ -74,7 +74,7 @@ </table> <input type="checkbox" value="is-driver" name="is_driver"> I want to be a driver as well! <br> - <input type="submit" value="Sign up" disabled> + <input id="sign-up-btn" type="submit" value="Sign up" disabled> <br> </fieldset> </form> diff --git a/src/view/script.js b/src/view/script.js index e123e76..ab16c24 100644 --- a/src/view/script.js +++ b/src/view/script.js @@ -28,11 +28,20 @@ function checkRequiredField(elmtID) { if (field.value === "") { field.classList.add("empty-required"); + return false; } else { field.classList.remove("empty-required"); + return true; } } +var isNameFilled = false; +var isUsernameFilled = false; +var isPasswordFilled = false; +var isEmailFilled = false; +var isPhoneFilled = false; +var isPasswordMatch = false; + document.getElementById("confirm-password").onkeyup = function () { var confirmField = document.getElementById("confirm-password"); var passwordField = document.getElementById("password"); @@ -40,28 +49,46 @@ document.getElementById("confirm-password").onkeyup = function () { if (confirmField.value !== passwordField.value) { confirmField.classList.add("not-match"); passwordField.classList.add("not-match"); + isPasswordMatch = false; } else { confirmField.classList.remove("not-match"); passwordField.classList.remove("not-match"); + isPasswordMatch = true; } }; + document.getElementById("name").onkeyup = function () { - checkRequiredField("name"); + isNameFilled = checkRequiredField("name"); }; document.getElementById("username").onkeyup = function () { - checkRequiredField("username"); + isUsernameFilled = checkRequiredField("username"); }; document.getElementById("password").onkeyup = function () { - checkRequiredField("password"); + isPasswordFilled = checkRequiredField("password"); }; document.getElementById("email").onkeyup = function () { - checkRequiredField("email"); + isEmailFilled = checkRequiredField("email"); }; document.getElementById("phone").onkeyup = function () { - checkRequiredField("phone"); + isPhoneFilled = checkRequiredField("phone"); +}; + +document.getElementById("register-form").onkeyup = function () { + var submitBtn = document.getElementById("sign-up-btn"); + + if (isNameFilled && + isUsernameFilled && + isPasswordFilled && + isEmailFilled && + isPhoneFilled && + isPasswordMatch) { + submitBtn.removeAttribute("disabled"); + } else { + submitBtn.setAttribute("disabled", "true"); + } } \ No newline at end of file -- GitLab