Bonjour à tous,
Je souhaite créer une fonction qui me contrôle la validité des données saisies dans une cellule de formulaire et qui par la suite m'extrait la première lettre de chaque chaine dans prénom pour pouvoir ensuite créer un login à partir de ces 2 cellules pour avoir "pnom" comme login ou "p1p2nom" dans le cas d'un nom composé.
Le principe est le suivant :
Voici un extrait du form
Code :
- ...
- <tr id='1'>
- <td class='tablename' rowspan='2'>
- Nom complet (format <strong>prenom nom</strong> ) :
- </td>
- <th align='center'>prenom</th>
- <th align='center'>nom</th>
- </tr>
- <tr id='2'>
- <td><input type='text' id='prenom' name='prenom' value='' onblur='createLogin_Mail();'/></td>
- <td><input type='text' id='nom' name='nom' value='' onblur='createLogin_Mail();' /></td>
- </tr>
- <tr id='3'>
- <td class='tablename'>Login</td>
- <td colspan='2'><input type='text' name='login' value='' readonly/></td>
- </tr>
- ...
|
Voici le code JS
Code :
- function createLogin_Mail()
- {
- if ((document.FormAjoutUserLDAP.prenom.value!=null)&&(document.FormAjoutUserLDAP.nom.value!=null))
- {
- var chaine_prenom = (document.FormAjoutUserLDAP.prenom.value);
- var chaine_nom = (document.FormAjoutUserLDAP.nom.value);
- var regexp1 = new RegExp("[ .-]+", "g" );
- var tableau = chaine_prenom.split(regexp1);
- for (var i=0; i<tableau.length; i++)
- {
- var regexp2 = new RegExp("[a-zA-Z]","g" );
- if (regexp2.test(tableau[i]))
- {
- prenom = tableau[i].charAt(0);
- var login = prenom+chaine_nom;
- document.FormAjoutUserLDAP.login.value = login
- document.FormAjoutUserLDAP.mail.value = login
- }
- else
- {
- alert('donnée invalide');
- }
- }
- }
- else
- {
- alert('champ vide');
- }
- }
|
Le problème qui se pose est que je ne parvient à mettre dans la cellule login que la première lettre de la dernière chaine de la cellule prénom, en gros prenom=jean-paul nom=dupond, login=pdupont au lieu de jpdupont.
Lorsque je fais un document.write(prenom = tableau[i].charAt(0)); cela m'ouvre bien une page et m'affiche bien mon "jp" alors que lorsque je dit que prenom = tableau[i].charAt(0); cela ne me met que la première de la dernière chaine.
Auriez-vous une idée ou suggestion ?
Merci d'avance,
Cordialement.
Message édité par akalaan le 17-06-2008 à 17:58:24