Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise a jour d'un champs texte par un autre

6 réponses
Avatar
function Maj(Champ_Source,Champ_Cible)

{

// test ci dessous en dur : ça fonctionne


//document.forms.form1.elements['Nom_Prenom2'].value=
document.form1.elements[Champ_Source.name].value;

// mais ci dessous en dynamique ça marche pas :-(((

eval("document.forms.forml.elements['"+Champ_Cible+"']").value=document.form1.elements[Champ_Source.name].value;

}

Par cette fonction je cherche a mettre a jour le champ cible par le champs
source.

J'appelle ma fonction ..... onblur= (This,'Nom_Champ_Cible')



Où me trompe je ??

6 réponses

Avatar
Thibault TAILLANDIER
function Maj(Champ_Source,Champ_Cible)

{

// test ci dessous en dur : ça fonctionne


//document.forms.form1.elements['Nom_Prenom2'].value=
document.form1.elements[Champ_Source.name].value;

// mais ci dessous en dynamique ça marche pas :-(((

eval("document.forms.forml.elements['"+Champ_Cible+"']").value=document.form1.elements[Champ_Source.name].value;

}

Par cette fonction je cherche a mettre a jour le champ cible par le champs
source.

J'appelle ma fonction ..... onblur= (This,'Nom_Champ_Cible')



Où me trompe je ??




Salut,

Utilise le systeme Document Object Model (DOM) pour gérer tes objets, ta
vie sera plus simple, et portable sur la plupart des navigateurs :

<input type="text" id="source" value="tutu" onblur="maj(this,'cible')">
<input type="text" id="cible" value="toto" onblur="maj(this,'source')">

function maj(source,cible) {
var c = document.getElementById(cible);
c.value = source.value;
}

C'est non testé, mais a priori ca devrait marcher.
Pour la prochaine fois, met un vrai nom quand tu postes.

Bye
--
Thibault

Avatar
Merci
pour le nom désolé mais c'est le parametrage par défaut du poste :-(
Fabien

"Thibault TAILLANDIER" a écrit dans le
message de news: 42399c4a$0$31196$
function Maj(Champ_Source,Champ_Cible)

{

// test ci dessous en dur : ça fonctionne


//document.forms.form1.elements['Nom_Prenom2'].value=
document.form1.elements[Champ_Source.name].value;

// mais ci dessous en dynamique ça marche pas :-(((

eval("document.forms.forml.elements['"+Champ_Cible+"']").value=document.form1.elements[Champ_Source.name].value;

}

Par cette fonction je cherche a mettre a jour le champ cible par le
champs source.

J'appelle ma fonction ..... onblur= (This,'Nom_Champ_Cible')



Où me trompe je ??




Salut,

Utilise le systeme Document Object Model (DOM) pour gérer tes objets, ta
vie sera plus simple, et portable sur la plupart des navigateurs :

<input type="text" id="source" value="tutu" onblur="maj(this,'cible')">
<input type="text" id="cible" value="toto" onblur="maj(this,'source')">

function maj(source,cible) {
var c = document.getElementById(cible);
c.value = source.value;
}

C'est non testé, mais a priori ca devrait marcher.
Pour la prochaine fois, met un vrai nom quand tu postes.

Bye
--
Thibault





Avatar
YD
document.forms.form1.elements['Nom_Prenom2'].value=
document.form1.elements[Champ_Source.name].value;

Utilise le systeme Document Object Model (DOM) pour gérer tes objets, ta

vie sera plus simple, et portable sur la plupart des navigateurs :

<input type="text" id="source" value="tutu" onblur="maj(this,'cible')">
<input type="text" id="cible" value="toto" onblur="maj(this,'source')">

function maj(source,cible) {
var c = document.getElementById(cible);
c.value = source.value;
}


Je t'engage vivement à jeter un oeil sur la spec. DOM2 HTML avant de dire
des c... La collection forms tout comme sa collection elements font partie
du DOM (voir donc http://www.w3.org/TR/DOM-Level-2-HTML/).

J'ajouterai qu'il vaut mieux les utiliser plutôt que getElementById pour des
questions de performance, getElementById obligeant à un parcours récursif de
l'arbre représentant la page.

--
Y.D.


Avatar
YD
function Maj(Champ_Source,Champ_Cible)
{
// test ci dessous en dur : ça fonctionne
//document.forms.form1.elements['Nom_Prenom2'].value=
document.form1.elements[Champ_Source.name].value;

// mais ci dessous en dynamique ça marche pas :-(((
eval("document.forms.forml.elements['"+Champ_Cible+"']").value=document.form1.elements[Champ_Source.name].value;
}


Pourquoi utiliser eval ???
Et pourquoi couper les cheveux en 4 ?
document.forms.forml.elements[Champ_Cible].value=Champ_Source.value;
doit fonctionner parfaitement :
- Champ_Cible contient dans une chaîne le nom du champ à modifier ;
- Champ_Source est une référence vers l'objet dont on interroge la propriété
value, référence passée en premier paramètre de la fonction.

J'appelle ma fonction ..... onblur= (This,'Nom_Champ_Cible')
Où me trompe je ??


C'est une coquille (je pense) mais this s'écrit en minuscules en javascript.
L'appel doit donc s'écrire :
onblur="Maj(this,'Nom_Champ_Cible');"

--
Y.D.

Avatar
Thibaut Allender
pour le nom désolé mais c'est le parametrage par défaut du poste :-(


par contre, citer l'intégralité du message, même si c'est *aussi* le
paramétrage par défaut du "poste", vous pouvez éviter:
http://giromini.org/usenet-fr/repondre.html

... n'en déplaise à do ré mi, BMR et autres trolls notoires

--
thibaut allender | freelance | http://capsule.org

Avatar
ASM

ça marche pas :-(((

eval("document.forms.forml.elements['"+Champ_Cible+
"']").value=document.form1.elements[Champ_Source.name].value;


ben ... et commentt l'eval evalue t-il Champ_Source.name si ce ne lui est pas précisé ?

à mon idée ceci devrait faire :

eval("document.forms.forml.elements['"+Champ_Cible+"']).value=document.form1.elements['"+
Champ_Source.name+"'].value";

ou, pour reprendre ce qui fonctionnait :

eval("document.forms.forml.elements['"+Champ_Cible+"']).value=document.form1.elements["+
Champ_Source.name+"].value";

M'enfin ce n'est que pour tenter de comprendre.
En général on evite au maximum de se servir de eval()

--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************