141 lines
6.0 KiB
JavaScript
Executable File
141 lines
6.0 KiB
JavaScript
Executable File
var inPrenom = document.getElementById('crPrenom');
|
|
var inNom = document.getElementById('crNom');
|
|
var inAdr = document.getElementById('crAdr');
|
|
var inAdr2 = document.getElementById('crAdr2');
|
|
var inCP = document.getElementById('crCP');
|
|
var inVille = document.getElementById('crVille');
|
|
var inDN = document.getElementById('crDN');
|
|
var inLN = document.getElementById('crLN');
|
|
var inSecu = document.getElementById('crSecu');
|
|
var sbCreer = document.getElementById('sbCreer'); // SUBMIT
|
|
|
|
var inCk = new inputChecker();
|
|
// format de la date
|
|
var dateFormat = new formatChecker(null, 'Ji/Mi/Aiii', { 'J': '[0-3]', 'M': '[0-1]', 'A': '[1-2]' } );
|
|
// format du numéro de sécu
|
|
var secuFormat = new formatChecker(null, 'S ii Mi ii iii iii ii', { 'S': '[0-1]', 'M': '[0-1]' } );
|
|
inCk.append( inCP, new formatChecker( null, 'iiiii'), '09000'); // on ajoute le CODE_POSTAL au vérificateur de champs
|
|
inCk.append( inDN, dateFormat, '01/01/2015'); // on ajoute la DATE_NAISSANCE au vérificateur de champs
|
|
inCk.append( inSecu, secuFormat, '1 99 19 99 999 999 99'); // on ajoute le NUM_SECU au vérificateur de champs
|
|
|
|
|
|
|
|
/* Met à jour l'état visuel d'un <input> si sa valeur correspond aux initères
|
|
*
|
|
* @pInputElement<HTMLInputElement> l'élément <input> en question
|
|
* @pMinLength<int> la taille minimum autorisée
|
|
* @pMaxLength<int> la taille maximum autorisée
|
|
* @optAlpha<String> [OPT] TRUE si uniquement alphanumérique
|
|
*/
|
|
function checkVARCHAR(pInputElement, pMinLength, pMaxLength, optAlpha){
|
|
var optAlpha = (arguments.length > 3) ? optAlpha : false;
|
|
optAlpha = (typeof optAlpha == 'boolean') ? optAlpha : false;
|
|
|
|
var varcharRegExp;
|
|
|
|
if( optAlpha ) varcharRegExp = new RegExp('^([a-z]{'+pMinLength+','+pMaxLength+'})$', 'i'); // only alpha characters
|
|
else varcharRegExp = new RegExp('^([\\w -]{'+ pMinLength+','+pMaxLength+'})$', 'i'); // any word character
|
|
|
|
if( pInputElement.value.match(varcharRegExp) != null ){ // si champ correct
|
|
addClass(pInputElement, 'validated');
|
|
remClass(pInputElement, 'invalid');
|
|
}else{
|
|
remClass(pInputElement, 'validated');
|
|
|
|
addClass(pInputElement, 'invalid');
|
|
}
|
|
}
|
|
|
|
//////////////////////////////
|
|
// PRENOM & NOM (VARCHAR 45)//
|
|
//////////////////////////////
|
|
inPrenom.addEventListener('keyup', function(e){ checkVARCHAR(e.target, 3, 45, true); }, false);
|
|
inNom.addEventListener('keyup', function(e){ checkVARCHAR(e.target, 3, 45, true); }, false);
|
|
|
|
|
|
//////////////////////////////////////
|
|
// ADRESSE & ADRESSE2 (VARCHAR 255) //
|
|
//////////////////////////////////////
|
|
inAdr.addEventListener('keyup', function(e){ checkVARCHAR(e.target, 5, 255); }, false);
|
|
inAdr2.addEventListener('keyup', function(e){ checkVARCHAR(e.target, 5, 255); }, false);
|
|
|
|
////////////////////////////
|
|
// VILLE & LIEU_NAISSANCE //
|
|
////////////////////////////
|
|
inVille.addEventListener('keyup', function(e){ checkVARCHAR(e.target, 3, 50); }, false);
|
|
inLN.addEventListener('keyup', function(e){ checkVARCHAR(e.target, 3, 50); }, false);
|
|
|
|
/////////////////
|
|
// CODE POSTAL //
|
|
/////////////////
|
|
inCP.addEventListener('keyup', function(e){
|
|
if( inCk.check(inCP) ) addClass(inCP, 'validated'); // on active la classe si correct
|
|
else{ // si incorrect
|
|
remClass(inCP, 'validated'); // on désactive la classe
|
|
inCk.correct(inCP, false); // on corrige partiellement
|
|
if( inCk.check(inCP) ) addClass(inCP, 'validated'); // mise à jour de la classe après correction
|
|
}
|
|
}, false);
|
|
|
|
///////////////////////
|
|
// DATE DE NAISSANCE //
|
|
///////////////////////
|
|
inDN.addEventListener('keyup', function(e){
|
|
if( inCk.check(inDN) ) addClass(inDN, 'validated'); // on active la classe si correct
|
|
else{ // si incorrect
|
|
remClass(inDN, 'validated'); // on désactive la classe
|
|
inCk.correct(inDN, false); // on corrige partiellement
|
|
if( inCk.check(inDN) ) addClass(inDN, 'validated'); // mise à jour de la classe après correction
|
|
}
|
|
}, false);
|
|
|
|
////////////////////
|
|
// NUMERO DE SECU //
|
|
////////////////////
|
|
function checkSecuControlKey(pNumSecu){
|
|
var NIR = pNumSecu.slice(0,-2).replace(/ /g, '');
|
|
var key = pNumSecu.slice(-2);
|
|
|
|
return 97-(NIR%97) == key;
|
|
}
|
|
|
|
inSecu.addEventListener('keyup', function(e){
|
|
if( inCk.check(inSecu) ){
|
|
|
|
if( checkSecuControlKey(inSecu.value) ){ // si la clé est correcte
|
|
addClass(inSecu, 'validated'); // on dis que le champ est valide
|
|
remClass(inSecu, 'invalid'); // on dis qu'il n'est pas invalide
|
|
}else{
|
|
remClass(inSecu, 'validated'); // on dis que le champ n'est pas valide
|
|
addClass(inSecu, 'invalid'); // on dis qu'il est invalide
|
|
}
|
|
|
|
}else{ // si incorrect
|
|
|
|
remClass(inSecu, 'validated'); // on désactive la classe
|
|
remClass(inSecu, 'invalid'); // on dis qu'il n'est pas invalide
|
|
|
|
inCk.correct(inSecu, false); // on corrige partiellement
|
|
if( inCk.check(inSecu) ){
|
|
|
|
if( checkSecuControlKey(inSecu.value) ){ // si la clé est correcte
|
|
addClass(inSecu, 'validated'); // on dis que le champ est valide
|
|
remClass(inSecu, 'invalid'); // on dis qu'il n'est pas invalide
|
|
}else{
|
|
remClass(inSecu, 'validated'); // on dis que le champ n'est pas valide
|
|
addClass(inSecu, 'invalid'); // on dis qu'il est invalide
|
|
}
|
|
}
|
|
}
|
|
}, false);
|
|
|
|
|
|
sbCreer.addEventListener('click', function(e){
|
|
e.preventDefault(); // on annule le submit()
|
|
|
|
var inputCheckerValid = inCk.checkAll();
|
|
var allInputValidated = inPrenom.className.indexOf('validated') > -1 && inNom.className.indexOf('validated') > -1 && inAdr.className.indexOf('validated') > -1 && inAdr2.className.indexOf('validated') > -1 && inCP.className.indexOf('validated') > -1 && inVille.className.indexOf('validated') > -1 && inDN.className.indexOf('validated') > -1 && inLN.className.indexOf('validated') > -1 && inSecu.className.indexOf('validated') > -1;
|
|
|
|
if( inputCheckerValid && allInputValidated ) // si tout es ok uniquement, on submit()
|
|
sbCreer.parentNode.submit();
|
|
}, false); |