Page 1 sur 1

Ecrire dans un champ le contenu d'un autre

Posté : 23 juil. 2005, 03:24
par milooser
Bonjour,
mes recherches infructueuses et n'y connaissant rien à javascript, ça serait sympa si vous m'indiquiez une astuce en javascript pour un problème de formulaire.

Voilà, j'ai un formulaire avec 3 champs : dossier, chemin1, chemin2
dossier contient une certaine valeur, j'aimerais qu'elle s'affiche dans les deux autres champs en "live", c'est à dire que si je modifie dossier, la nouvelle valeur doit être modifiée dans les champs chemin1 et chemin2.

Si vous pouviez m'aider je vous en remercierais.

Bonne journée.

Posté : 23 juil. 2005, 08:05
par Cyrano
À quoi ressemblent les données qui sont dans chemin1 et chemin2, peux-tu mettre un exemple ? Parce que si c'est exactement trois fois la même valeur, c'est complètement inutile.

Posté : 23 juil. 2005, 17:31
par milooser
Bonjour,
le champ dossier contient un nom de dossier.
les champs chemin1 et chemin2 contiennent quant à eux le chemin pour accéder au dossier.

Par exemple :
dossier : alberticle
chemin1 : ../alberticle
chemin2 : ../../alberticle

Et quand on modifie le champ dossier, les champs chemin sont aussi modifiés.

Merci et bonne journée.

Posté : 23 juil. 2005, 17:54
par Cyrano
Ok, alors tu peux effectivement utiliser un gestionnaire d'évènement onchange sur le premier champ qui appelle une fonction que tu devras créer et qui fera quelque chose de ce genre :
Formulaire
...
<form action="" method="post" id="form_1">
<input type="text" name="dossier" id="dossier" value="" onchange="modifchemin(); return false;">
<input type="text" name="chemin1" id="chemin1" value="">
<input type="text" name="chemin2" id="chemin2" value="">
...
</form>
Fonction dans l'en-tête de la page
<script type="text/javascript">
function modifchemin()
{
    var dossier = document.forms['form_1'].elements['dossier'].value;
    document.forms['form_1'].elements['chemin1'].value = '..\/'+ dossier;
    document.forms['form_1'].elements['chemin2'].value = '..\/..\/'+ dossier;
}
</script>

Posté : 24 juil. 2005, 09:02
par Axel
Salut,

Cyrano, pq mets-tu un "return false" à la fin du onchange ?
La fonction se suffit à elle même et elle lance aucune commande particuliere qui enregistre le formulaire. :roll:

Posté : 24 juil. 2005, 09:29
par Cyrano
Parce que si ton formulaire est en bas de page, ça évite que la page se repositionne en haut dans le navigateur. C'est facultatif.

Posté : 24 juil. 2005, 09:40
par Axel
Merci
je m'était plusieurs fois posé la question du comment faire pour eviter ça, mais j'avoue que je ne m'était pas réellement penché sur le pb :oops:

Posté : 25 juil. 2005, 08:04
par milooser
Merci bien ça marche nickel.

Bonne journée.