// /* [1] On récupère les 2 , on créé l'évènement de selection dynamique // ===============================================================*/ // if( newRDVPatient != null && newRDVMedecin != null ){ // /* [1] On selectionne dynamiquement le médecin traitant associé // =======================================================================*/ // newRDVPatient.addEventListener('change', function(e){ // var child = document.querySelector("#newRDVPatient > option[value='"+newRDVPatient.value+"'][data-medecin]"); // // on selectionne le medecin associé // newRDVMedecin.value = child.dataset.medecin; // addClass(newRDVMedecin, 'associated'); // }, false); // // [1] On met en valeur le médecin traitant associé (class=associated) // // ======================================================================= // newRDVMedecin.addEventListener('change', function(e){ // var child = document.querySelector("#newRDVPatient > option[value='"+newRDVPatient.value+"'][data-medecin]"); // if( newRDVMedecin.value == child.dataset.medecin ) // si c'est le medecin traitant, on met en valeur l'association // addClass(newRDVMedecin, 'associated'); // else // remClass(newRDVMedecin, 'associated'); // }, false); // } // /* GESTION DU NUMÉRO DE SÉCU */ // var inSecu = document.getElementById('inSecu'); // input du numéro de sécu // var ftSecu = 'x xx xx xx xxx xxx xx'; // format du numéro de sécu // inSecu.addEventListener('keyup', function(e){ // // pour chaque caractère // for( var i = 0 ; i < inSecu.value.length ; i++ ){ // // [1] si le caractère n'est pas un nombre, on le supprime // if( isNaN(inSecu.value[i]) ) // inSecu.value = inSecu.value.slice(0, i).concat( inSecu.value.slice(i+1) ); // // [2] si c'est pas un espace mais qu'il en faut un, on met en forme // if( inSecu.value[i] != ' ' && ftSecu[i] == ' ' ) // inSecu.value = inSecu.value.slice(0, i).concat(' ').concat( inSecu.value.slice(i) ); // // [4] Le numéro saisi est trop long, on le coupe + enlève les espaces alentours // inSecu.value = inSecu.value.slice(0, ftSecu.length).trim(); // } // // si input complet // if( inSecu.value.length == ftSecu.length ) // addClass(inSecu, 'validated'); // else // remClass(inSecu, 'validated'); // }, false); // /* GESTION DE LA DATE */ // var inDate = document.getElementById('inDate'); // input de la date // var ftDate = 'dd/dd/dddd'; // format de la date // inDate.addEventListener('keyup', function(e){ // // pour chaque caractère // for( var i = 0 ; i < inDate.value.length ; i++ ){ // // [1] si le caractère n'est pas un nombre, on le supprime // if( isNaN(inDate.value[i]) ) // inDate.value = inDate.value.slice(0, i).concat( inDate.value.slice(i+1) ); // // [2] si c'est pas un espace mais qu'il en faut un, on met en forme // if( inDate.value[i] != '/' && ftDate[i] == '/' ) // inDate.value = inDate.value.slice(0, i).concat('/').concat( inDate.value.slice(i) ); // // [3] Le numéro saisi est trop long, on le coupe + enlève les espaces alentours // inDate.value = inDate.value.slice(0, ftDate.length).trim(); // } // // [4] vérification de cohérence // var pJour = inDate.value.slice(0,2); // var pMois = inDate.value.slice(3,5); // var pAnnee = inDate.value.slice(6,11); // // test de la validité // var pDate = new Date(pJour+'/'+pMois+'/'+pAnnee); // // if( pDate.toString() != 'Invalid Date' ){ // // var pDateObj = { // // jour: (''+(pDate.getDate()-1)).length != 2 ? '0'+(pDate.getDate()-1) : ''+(pDate.getDate()-1), // // mois: (''+(pDate.getMonth()+1)).length != 2 ? '0'+(pDate.getMonth()+1) : ''+(pDate.getMonth()+1), // // annee: (''+(pDate.getFullYear())).length != 4 ? '0'+(pDate.getFullYear()) : ''+(pDate.getFullYear()), // // } // // inDate.value = pDateObj.jour +'/'+ pDateObj.mois +'/'+ pDateObj.annee; // // } // }, false); // /* GESTION DE L'HEURE */ // var inHeure = document.getElementById('inHeure'); // input de la date // var ftHeure = 'dd:dd'; // format de la date // inHeure.addEventListener('keyup', function(e){ // // pour chaque caractère // for( var i = 0 ; i < inHeure.value.length ; i++ ){ // // [1] si le caractère n'est pas un nombre, on le supprime // if( isNaN(inHeure.value[i]) ) // inHeure.value = inHeure.value.slice(0, i).concat( inHeure.value.slice(i+1) ); // // [2] si c'est pas un espace mais qu'il en faut un, on met en forme // if( inHeure.value[i] != ':' && ftHeure[i] == ':' ) // inHeure.value = inHeure.value.slice(0, i).concat(':').concat( inHeure.value.slice(i) ); // // [3] Le numéro saisi est trop long, on le coupe + enlève les espaces alentours // inHeure.value = inHeure.value.slice(0, ftHeure.length).trim(); // } // // [4] vérification de cohérence // var pHeures = inHeure.value.slice(0,2); // var pMinuts = inHeure.value.slice(3,5); // // on borne les valeurs // if( pHeures.length == 2 ) pHeures = (pHeures>=24) ? '23' : pHeures; // if( pMinuts.length == 2 ) pMinuts = (pMinuts>=60) ? '59' : pMinuts; // // on met au bon format dans tous les cas // if( pHeures.length == 2 && pMinuts.length == 2 ){ // addClass(inHeure, 'validated'); // inHeure.value = pHeures+':'+pMinuts; // }else // remClass(inHeure, 'validated'); // }, false); /* VERIFICATION DES CHAMPS */ var inCk = new inputChecker(); var inDate = document.getElementById('inDate'); var inHeure = document.getElementById('inHeure'); var inSecu = document.getElementById('inSecu'); // format de date simplifié var dateFormat = new formatChecker( null, 'Ji/Mi/2iii', { 'J': '[0-3]', 'M': '[0-1]' } ); // format de temps simplifié var timeFormat = new formatChecker( null, 'Hi:Mi', { 'H': '[0-2]', 'M': '[0-6]' } ); // format numéro SECU simplifié var secuFormat = new formatChecker( null, 'S ii ii ii iii iii ii', { 'S': '[0-1]' } ); var now = new Date(); inCk.append( inDate, dateFormat, now.toLocaleFormat('%d/%m/%Y') ); inCk.append( inHeure, timeFormat, now.toLocaleFormat('%H:%M') ); inCk.append( inSecu, secuFormat, '1 23 45 67 890 123 45' ); inDate.addEventListener('keyup', function(e){ if( inCk.check(inDate) ) addClass(inDate, 'validated'); // on active la classe si correct else{ // si incorrect remClass(inDate, 'validated'); // on désactive la classe inCk.correct(inDate, false); // on corrige partiellement if( inCk.check(inDate) ) addClass(inDate, 'validated'); // mise à jour de la classe après correction } }, false); inHeure.addEventListener('keyup', function(e){ if( inCk.check(inHeure) ) addClass(inHeure, 'validated'); // on active la classe else{ // si incorrect remClass(inHeure, 'validated'); // on désactive la classe inCk.correct(inHeure, false); // on corrige partiellement if( inCk.check(inHeure) ) addClass(inHeure, 'validated'); // mise à jour de la classe après correction } }, false); inSecu.addEventListener('keyup', function(e){ if( inCk.check(inSecu) ) addClass(inSecu, 'validated'); // on active la classe else{ // si incorrect remClass(inSecu, 'validated'); // on désactive la classe inCk.correct(inSecu, false); // on corrige partiellement if( inCk.check(inSecu) ) addClass(inSecu, 'validated'); // mise à jour de la classe après correction } }, false); // inDate.value = 'x3 F3/a8'; // inHeure.value = 'x3 F3/a8'; // inSecu.value = 'x3 F3/a8';