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 : Sélectionner tout - Visualiser dans une fenêtre à part
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