86a1233c83d77c382b9041405f9d9435a624c22e
1 // fonctions générales pour la page
3 var taillemaxdate
= 10;
4 var placeholder_date
= "aaaa-mm-jj" ;
7 function ajoutelignes()
9 // va ajouter 3 lignes au tableau de données
10 var table
= document
.getElementById("donneespoids")
11 var nbligne
= table
.children
[0].childElementCount
;
12 // les données étant numérotées à partir de 0 on pourra commencer à partir de nbligne -1
13 // car il faut éliminer la ligne de header.
15 // voir dans quel mode on est : date ou texte
16 var deuxiemeligne
= table
.children
[0].children
[1] ;
17 var celldate
= deuxiemeligne
.children
[1] ;
18 var mode
= celldate
.firstChild
.type
;
21 for(var i
=nbligne
-1; i
<nbligne
+nbajout
-1; i
++)
23 var ligne
= table
.insertRow(i
+1);
24 var cellage
= ligne
.insertCell(0);
25 var celldate
= ligne
.insertCell(1);
26 var cellpoids
= ligne
.insertCell(2);
27 var celltaille
= ligne
.insertCell(3);
29 cellage
.innerHTML
= '<input type="text" name="age_'+i
+'">' ;
30 celldate
.innerHTML
= '<input name="date_'+i
+'">' ;
31 celldate
.firstChild
.type
= mode
;
32 if(mode
== "text") // si on a déjà affiché les cases en mode texte, on continue en mode texte
34 celldate
.firstChild
.size
= taillemaxdate
;
35 celldate
.firstChild
.maxlength
= taillemaxdate
;
36 celldate
.firstChild
.placeholder
= placeholder_date
;
38 cellpoids
.innerHTML
= '<input type="text" name="poids_'+i
+'">' ;
39 celltaille
.innerHTML
= '<input type="text" name="taille_'+i
+'">' ;
40 celltaille
.classList
.add("donneesplus") ;
45 // Affichage de la textarea "export"
46 function affiche_export()
48 document
.getElementById("export").style
.display
= "block" ;
52 function affiche_cache(id
,elemcourant
)
54 // affiche et/ou cache l'élément id, tout en changeant le this
55 // en afficher/masquer
56 elem
= document
.getElementById(id
)
57 if(elem
.style
.display
== "block")
59 elem
.style
.display
= "none";
60 elemcourant
.innerHTML
= "Afficher" ;
64 elem
.style
.display
= "block" ;
65 elemcourant
.innerHTML
= "Masquer" ;
71 function affiche_cache_classe(classe
)
73 // affiche et/ou cache tous les éléments de la classe classe (et change le texte du this)
74 var listelem
= document
.getElementsByClassName(classe
) ;
76 if(listelem
[0].style
.display
!= "block") // c'est caché, donc on veut afficher
78 document
.getElementById("bouton_afficher_donneesplus").innerHTML
= "Masquer" ;
79 attributaff
= "block" ;
83 document
.getElementById("bouton_afficher_donneesplus").innerHTML
= "Afficher" ;
84 attributaff
= "none" ;
87 for(var i
=0;i
<listelem
.length
; i
++)
89 listelem
[i
].style
.display
= attributaff
;
93 function affiche_donneesplus_sibesoin()
95 // fonction à appeler au chargement de la page
96 // On parcourt le tableau des tailles (ou autres) et on voit si y'a
97 // des choses dans les champs
99 var liste_cases
= document
.getElementsByTagName("td") ;
100 //alert(liste_cases[3].children[0].value+liste_cases[3].classList) ;
101 for(i
=0; i
<liste_cases
.length
&& !(trouve
); i
++)
103 // Si une des cases "données plus" contient un truc non vide
104 if(liste_cases
[i
].classList
== "donneesplus" && liste_cases
[i
].children
[0].value
!= "")
110 affiche_cache_classe("donneesplus")
113 function change_mode_dates(mode
)
115 // passe de l'affichage en mode "date" à l'affichage en mode "texte" pour les navigateurs
116 // qui gèrent mal le mode date
117 var listeinput
= document
.getElementsByTagName("input") ;
118 for(i
=0;i
<listeinput
.length
;i
++)
120 var nombalise
= listeinput
[i
].name
;
121 if(nombalise
== "naissance" || nombalise
.slice(0,5) == "date_")
123 listeinput
[i
].type
= mode
;
125 listeinput
[i
].maxlength
= taillemaxdate
;
126 listeinput
[i
].size
= taillemaxdate
;
127 listeinput
[i
].placeholder
= placeholder_date
;
131 // changer le texte et le bouton.
132 var elem
= document
.getElementById("changemode") ;
135 elem
.innerHTML
= "Saisie des dates au format aaaa-mm-jj. <span onclick=\"change_mode_dates('date')\" class=\"bouton\">Cliquez ici</span> pour revenir à une saisie de dates « confortable »."
139 elem
.innerHTML
= "<span onclick=\"change_mode_dates('text')\" class=\"bouton\">Cliquez ici</span> pour saisir les dates comme du texte."