Validation du numéro de SECU avec la clé de contrôle
This commit is contained in:
parent
2ebf66e0b7
commit
f831a1a5ed
|
@ -80,7 +80,7 @@ if(!Authentification::checkUser(0)){
|
|||
|
||||
<article data-title="Numéro de sécurité sociale">
|
||||
<div>
|
||||
<input type='text' id='inSecu' placeholder='1 99 99 99 999 999 99'>
|
||||
<input type='text' id='inSecu' placeholder='1 99 99 99 999 999 99'><span class='invalid'>Numéro invalide.</span>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
|
|
@ -352,6 +352,22 @@ body{
|
|||
border-color: #1cc952;
|
||||
}
|
||||
|
||||
/* .invalid */
|
||||
#CONTAINER > article input.invalid{
|
||||
border-color: #ec111c;
|
||||
}
|
||||
|
||||
/* <span.invalid> après <input.invalid> */
|
||||
#CONTAINER > article input.invalid + span.invalid{
|
||||
color: #ec111c;
|
||||
}
|
||||
|
||||
/* <span.invalid> après <input> */
|
||||
#CONTAINER > article input:not(.invalid) + span.invalid{
|
||||
display: none;
|
||||
color: #ec111c;
|
||||
}
|
||||
|
||||
|
||||
/* <INPUT> [type=submit] */
|
||||
#CONTAINER > article input[type=submit]{
|
||||
|
|
|
@ -53,7 +53,7 @@ var timeFormat = new formatChecker(null,
|
|||
|
||||
// format numéro SECU simplifié
|
||||
var secuFormat = new formatChecker(null,
|
||||
'S ii ii ii iii iii ii', { 'S': '[0-1]' }
|
||||
'S ii Mi ii iii iii ii', { 'S': '[0-1]', 'M': '[0-1]' }
|
||||
);
|
||||
|
||||
|
||||
|
@ -84,16 +84,44 @@ inHeure.addEventListener('keyup', function(e){
|
|||
}
|
||||
}, false);
|
||||
|
||||
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) ) addClass(inSecu, 'validated'); // on active la classe
|
||||
else{ // si incorrect
|
||||
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) ) addClass(inSecu, 'validated'); // mise à jour de la classe après correction
|
||||
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);
|
||||
|
||||
|
||||
// inDate.value = 'x3 F3/a8';
|
||||
// inHeure.value = 'x3 F3/a8';
|
||||
// inSecu.value = 'x3 F3/a8';
|
||||
inSecu.value = '1 96 01 31 555 861';
|
Loading…
Reference in New Issue