Bonsoir à tous,
Je voudrais mettre en majuscules les premières lettres d'un prénom composé. Pour cela j'ai écrit le code suivant :

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Un formulaire en CSS</title>
<link href="SP01_js.css" type="text/css" rel="stylesheet" />
<script type="text/javascript">
 
   function mettreMajuscule() {
   //J'accede tout d'abord au nom saisi avec la methode getElementById
     var leNomSaisi = document.getElementById("leNomId").value;
   //le nom saisi est mis en majuscule avec la methode toUpperCase
     var leNomModifie=leNomSaisi.toUpperCase();
   //Je modifie la variable saisie
    document.getElementById("leNomId").value=leNomModifie;
   }
</script>
 
<script type="text/javascript">
// Fonction pour un prenom non compose
   function premLetMaj() {
      var lePrenomSaisi = document.getElementById("lePrenomId").value;
	  //La methode charAT de l'objet String un caractere que l'on transforme en majuscule avec toUpperCase
	  //Avec la methode substring on retourne un bout de la valeur de la variable que l'on force en minuscule
      var lePrenomModifie=lePrenomSaisi.charAt(0).toUpperCase() + lePrenomSaisi.substring(1).toLowerCase();
	  document.getElementById("lePrenomId").value=lePrenomModifie; 
   }
 
</script>
 
<script type="text/javascript">
 //Fonction pour un prenom compose
 function formatePrenom(){
    var lePrenomSaisi = document.getElementById("lePrenomId").value;
	//on verifie s'il s'agit d'un prenom compose en recherchant la presence d'un separateur (tiret ou espace)
	   if (lePrenomSaisi.indexOf("-")!=-1){
	      var separateur="-";
	   }
 
	   else if(lePrenomSaisi.indexOf("")!=-1){
	      var separateur="";
	   }
 
	   else{
	   //si on n'a pas trouve alors c'est un prenom simple et on met la 1er lettre en majuscule en appelant la fonntion 
	   //premLetMaj()
	   return(premLetMaj());
	   }
 
	 //Ce code est lu uniquement dans le cas de prenom compose
	 var prenom_array=lePrenomSaisi.split(separateur);
	    for(i=0; i<prenom_array.length; i++){
		   prenom_array[i]=premLetMaj(prenom_array[i]);
		}
		var prenomFormat=prenom_array.join(separateur);
		return prenomFormat;
 }
</script>
</head>
 
<body>
<div style="width:600px";>
<form name="leForm" method="post" action="script.php">
 
<p class="titre">Coordonnées </p>
 
<!--La balise fieldset crée un contour autour des balises de formulaires qu'elle entoure-->
 
<fieldset id="coordonnees">
<!--La balise label permet lorsque l'on clique sur son texte de donner le focus à un champ de formulaire-->
  <p id="civilite"> <label>Civilité : </label>
      <input type="radio" name="Civilité" value="M." />M.
      <input type="radio" name="Civilité" value="Melle." />Melle.
      <input type="radio" name="Civilité" value="Mme." />Mme.
   </p>
 
   <label>Nom : </label>
 
      <input type="text" name="leNom" size="30" id="leNomId" onchange="mettreMajuscule()" /><br />
 
   <label>Prénom : </label>
 
      <input type="text" name="lePrenom" size="30" id="lePrenomId" onchange="formatePrenom()" /><br />
 
   <label>Adresse : </label>
      <input type="text" name="adresse" size="30" /><br />
 
   <label>Code postal : </label>
      <input type="text" name="codepostal" size="30" /><br />
 
   <label>Ville : </label>
      <input type="text" name="ville" size="30" /><br />  
 
   <label>Télephone : </label>
      <input type="text" name="telephone" size="30" /><br />  
 
   <label>Adresse courriel : </label>
      <input type="text" name="courriel" size="30" /><br />  
 
   <p id="interets"><label>Centre d'intérets : </label>
 
     <!--Nous créons des cases à cocher et récupérons la valeur cochée dans une variable de type tableau en php-->
		 <input type="checkbox" name="interets[]" value="langageProgrammation" />Langage programmation
		 <input type="checkbox" name="interets[]" value="htmlCss" />Html et Css <br />
		 <input type="checkbox" name="interets[]" value="photoshop" />Photoshop <br />
		 <input type="checkbox" name="interets[]" value="developpementWeb" />Developpement Web
   </p>
</fieldset> 
 
<p class="titre">Message</p>
 
<fieldset id="message">
 
  <!--zone de texte crée avec textarea pour mettre des commentaires-->
   <textarea name="comments" rows="5" cols="40"></textarea> 
</fieldset>
 
<!--Création des boutons submit et reset-->
<p id="buttons">
   <input type="submit" value="envoyer" />
   <input type="reset" value="effacer" />
</p>
 
</form>
</div>
 
</body>
</html>
Si la fonction marche pour le prénom simple ; en revanche pour le prénom composé elle ne fait rien. Je ne vois pas où je fais l'erreur.
Si quelqu'un peut me guider je l'en remercie vivement.

Bon dimanche