Appel de fonction dans un objet
Bonjour,
J'essaie de créer la classe d'objet CL_page_calcul pour automatiser la production de feuilles de calculs.
L'exemple ci-dessous est simplifié (dans la version future, "entree","formule" et "resultat" seront des tableaux).
Bref. Le problème que je rencontre, c'est pour appeler la bonne fonction. Si j'écris :
Code:
onclick="this.calculer()"
à la place de
Code:
onclick="calcul1.calculer()"
cela ne marche pas.
Que faut-il écrire pour appeler la fonction calcul1.calculer() quand on affiche la page calcul1.afficher()
et pour appeler la fonction calcul2.calculer() quand on affiche la page calcul2.afficher()?
Je n'ai pas trouvé de solution élégante.
Merci par avance pour vos réponses.
Code:
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
| <!DOCTYPE html><html>
<head>
<script type="text/javascript">
CL_page_calcul = function(entree,formule,resultat) {
this.afficher=function() {
var ch=entree+' = <input type="text" name="'+entree+'"><br>';
ch+='<input type="button" value="CALCULER" onclick="calcul1.calculer()"><br>';
ch+=resultat+' = <input type="text" name="'+resultat+'">';
document.getElementById("page").innerHTML=ch;
}
this.calculer=function() {
var ch=entree+'=document.f.'+entree+'.value*1';
eval(ch);
ch='document.f.'+resultat+'.value='+eval(formule);
eval(ch);
}
}
entree="a";
resultat="b";
formule="b=a+a";
calcul1=new CL_page_calcul(entree,formule,resultat);
entree="c";
resultat="d";
formule="d=c*c";
calcul2=new CL_page_calcul(entree,formule,resultat);
</script>
</head>
<body>
<form name="f"><div id="page">
<a href="javascript:calcul1.afficher()">Addition</a><br>
<a href="javascript:calcul2.afficher()">Multiplication</a>
</div></form>
</body>
</html> |
Appel de fonction dans un objet
Bonjour,
> pourquoi donc deux a href dans un form ?
Ces a href disparaissent lorsque la page de calcul sélectionnée s'affiche. En fait, j'aurais pu mettre ces form dans la fonction this.afficher... Le code proposé dans ma question est simplifié par rapport à ce que je veux obtenir, avec plus ou moin de bonheur, pour une lecture plus facile.
> en plus avec une balise fermante de div qui n'as pas d'ouvrante ?
<div id="page"> : C'est la balise ouvrante.