-
Adrian Hartarto Pramudita authoredabccf79e
Forked from
IF3110 / TugasBesar2_2017
17 commits ahead of the upstream repository.
app.js 3.22 KiB
function loginValidation() {
var username = document.forms["loginform"]["username"];
var pwd = document.forms["loginform"]["password"];
var usrVerify = Validate(username, "empty");
var pwdVerify = Validate(pwd, "empty");
return (usrVerify && pwdVerify);
}
function editProfileValidation() {
var name = document.forms["editprofile-form"]["your-name"];
var phone = document.forms["editprofile-form"]["phone-number"];
var nameVerify = Validate(name, "empty", 0, 20, "length");
var phoneVerify = Validate(phone, "empty", 9, 12, "length");
return (nameVerify && phoneVerify);
}
function Validate(inputArea, type1, min = 0, max = 0, type2 = null, type3 = null) {
var error = GetErrorMessage(inputArea.value, type1, min, max);
if(error === "") {
if (type2 != null) {
error = GetErrorMessage(inputArea.value, type2, min, max);
console.log(type2 + "length");
}
if (error === "") {
if (type3 != null) {
error = GetErrorMessage(inputArea.value, type3, min, max);
}
}
}
if(error !== "" && inputArea.nextElementSibling === null) {
var errorEl = document.createElement("p");
errorEl.innerHTML = error;
errorEl.className = "error";
insertAfterElement(errorEl, inputArea);
inputArea.addEventListener("blur", function() {
var error = GetErrorMessage(inputArea.value, type1, min, max);
if(error === "") {
if (type2 != null) {
error = GetErrorMessage(inputArea.value, type2, min, max);
}
if (error === "") {
if (type3 != null) {
error = GetErrorMessage(inputArea.value, type3, min, max);
}
}
}
if (error === ""){
this.nextSibling.remove();
}
},true);
}
return (error === "");
}
function insertAfterElement(el, src) {
src.parentNode.insertBefore(el, src.nextSibling);
}
function GetErrorMessage(textArea, type, min = 0, max = 0) {
var validateText = "";
switch(type) {
case "empty" :
if(isEmpty(textArea)) {
validateText = "Fill in the field";
}
break;
case "email" :
if(!isEmail(textArea)) {
validatedText = "Invalid Email Address";
}
break;
case "number" :
if(isNumber(textArea)){
validateText = "Fill in with only number";
}
break;
case "length" :
if (!isLengthEqual(textArea,min,max)){
validateText = "Character must be between " + min.toString() + " and " + max.toString() + " long";
}
break;
}
return validateText;
}
function isEmpty(textArea) {
return (textArea.match(/^s+$/) || textArea == "");
}
function isNumber(textArea) {
return (!isNaN(textArea));
}
function isLengthEqual(textArea, min, max){
return (textArea.length >= min && textArea.length <= max);
}
function isEmail(textArea) {
return (textArea.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/));
}