ComunicWeb/assets/js/common/formChecker.js

80 lines
2.3 KiB
JavaScript
Raw Permalink Normal View History

2017-02-24 09:48:21 +00:00
/**
* Function to check data input in forms
*
* @author Pierre HUBERT
*/
const FormChecker = {
2017-02-24 09:48:21 +00:00
/**
* Check an input
*
* @param {elem} input The input element to check
* @param {Boolean} inFormGroup Specify wether the input is in a formgroup or not
* @param {number} minLength Minimum length of input
2017-02-24 09:48:21 +00:00
* @return {Boolean} True or false depending of the validity of the field
*/
checkInput: function(input, inFormGroup, minLength = 3){
2017-02-24 09:48:21 +00:00
//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 < minLength ? false:true);
2017-02-24 09:48:21 +00:00
}
//MailInput
else if(inputType == "email"){
2017-05-24 14:37:41 +00:00
inputOK = checkMail(input.value);
2017-02-24 09:48:21 +00:00
}
//Password input
else if(inputType == "password"){
2018-04-11 09:09:59 +00:00
inputOK = (input.value.length < 3 ? false:true);
2017-02-24 09:48:21 +00:00
}
//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;