ComunicWeb/assets/js/common/formChecker.js

79 lines
2.2 KiB
JavaScript

/**
* Function to check data input in forms
*
* @author Pierre HUBERT
*/
const FormChecker = {
/**
* Check an input
*
* @param {elem} input The input element to check
* @param {Boolean} inFormGroup Specify wether the input is in a formgroup or not
* @return {Boolean} True or false depending of the validity of the field
*/
checkInput: function(input, inFormGroup){
//Check input existence
if(!input){
//Error message
ComunicWeb.debug.logMessage("ComunicWeb.common.formChecker.checkInput requires at least on input !");
return false;
}
//Extract input type
var inputType = input.type;
//Prepare checking
var inputOK = true;
//TextInput
if(inputType == "text"){
inputOK = (input.value.length < 3 ? false:true);
}
//MailInput
else if(inputType == "email"){
inputOK = checkMail(input.value);
}
//Password input
else if(inputType == "password"){
inputOK = (input.value.length < 3 ? false:true);
}
//Unsupported input type
else {
ComunicWeb.debug.logMessage("ComunicWeb.common.formChecker.checkInput input type '" + inputType + "' not supported !");
return false;
}
//If possible, change input state
if(inFormGroup){
//Retrieve parent node
var parentNode = input.parentNode;
//If there is no error, remove has-error attribute
if(inputOK){
if(parentNode.className.indexOf("has-error") != -1){
//Remove has-error attribute
parentNode.className = parentNode.className.replace("has-error", "");
}
}
//If there is an error, check the has-error attribute is present
if(!inputOK){
if(parentNode.className.indexOf("has-error") == -1){
//Add has-error attribute
parentNode.className = parentNode.className + " has-error";
}
}
}
//Return result
return inputOK;
}
};
ComunicWeb.common.formChecker = FormChecker;