Mon calendrier ne s'efface pas
Bonjour à tous,
J'ai une fonction de masquage de calendrier qui s'applique tour à tour sur deux champs différents. Elle fonctionne pour le deuxième champs mais pas pour le premier. Je pense que c'est un problème du au clonage de l'objet paramètre mais je n'arrive pas à le résoudre.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| const
tabForms = document.querySelectorAll("[name='tabForm'], [name='actForm']")
,dates = document.querySelectorAll("[id*='date_']")
;
var cal = new jsSimpleDatePickr()
,max= dates.length
,oClone
,oParams = {
'divId': '',
'inputFieldId': '',
'dateMask': 'JJ/MM/AAAA',
'dateCentury': 20,
'titleMask': 'M AAAA',
'navType': '11',
'classTable': 'jsCalendar',
'classDay': 'day',
'classDaySelected': 'selectedDay',
'monthLst': fromPHPtoJS.monthes,
'dayLst': fromPHPtoJS.shortDays,
'hideOnClick': true,
'showOnLaunch': false,
'callBack': saveDate
}
;
if (max && tabForms[0].dataset.tab == 'qualityCert') {
dates.forEach(function(curDate){
oClone = Object.assign({}, oParams);
oClone.divId = curDate.dataset.divid;
oClone.inputFieldId = curDate.id;
cal.CalAdd(oClone);
document.addEventListener('click', function(e){
console.log(e.target.id);
console.log(oClone.inputFieldId);
console.log(e.target.name);
if (e.target.id != oClone.inputFieldId && e.target.name != '' ){ // Cette condition n'est jamais remplie pour le premier calendrier
cal.CalDoFromField(oClone.inputFieldId, 'hide');
}
}, false );
});
} |
Voici le résultat des lignes 34 à 36 pour le premier calendrier:
'date_cert', 'date_validity', 'date_cert'
et pour le second:
'', 'date_validity', undefined