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">
|
<article data-title="Numéro de sécurité sociale">
|
||||||
<div>
|
<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>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
|
|
|
@ -352,6 +352,22 @@ body{
|
||||||
border-color: #1cc952;
|
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] */
|
/* <INPUT> [type=submit] */
|
||||||
#CONTAINER > article input[type=submit]{
|
#CONTAINER > article input[type=submit]{
|
||||||
|
|
|
@ -53,7 +53,7 @@ var timeFormat = new formatChecker(null,
|
||||||
|
|
||||||
// format numéro SECU simplifié
|
// format numéro SECU simplifié
|
||||||
var secuFormat = new formatChecker(null,
|
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);
|
}, 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){
|
inSecu.addEventListener('keyup', function(e){
|
||||||
if( inCk.check(inSecu) ) addClass(inSecu, 'validated'); // on active la classe
|
if( inCk.check(inSecu) ){
|
||||||
else{ // si incorrect
|
|
||||||
|
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, 'validated'); // on désactive la classe
|
||||||
|
remClass(inSecu, 'invalid'); // on dis qu'il n'est pas invalide
|
||||||
|
|
||||||
inCk.correct(inSecu, false); // on corrige partiellement
|
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);
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
// inDate.value = 'x3 F3/a8';
|
// inDate.value = 'x3 F3/a8';
|
||||||
// inHeure.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