/** * Function to check data input in forms * * @author Pierre HUBERT */ ComunicWeb.common.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 == "" ? false:true); } //MailInput else if(inputType == "email"){ inputOK = input.value.match(/^[a-zA-Z0-9_.]+@[a-zA-Z0-9-]{1,}[.][a-zA-Z]{2,3}$/); } //Password input else if(inputType == "password"){ inputOK = (input.value == "" ? 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; } };