Comment pointer sur la valeur de la variable et non sur le nom celle-ci?

J’admets que cela semble un peu flou comme question, mais je ne savais pas trop comment l’appeler. Bon voici quelques bouts de mon code pour que vous compreniez bien la chose:



<script>
function CalculPrix(PrixUnitaire,NbArticle,nom){

window.document.commande.nom.value = 0;
}
</script>

<FORM name="commande">
<INPUT TYPE="TEXT"  NAME="patate" size="10" onkeyup="CalculPrix(4,this.value,name);">
</FORM>

Vous remarquer sans doute déjà le problème, il pointe sur “nom” et non sur le contenu de la variable “nom”, alors j’aimerais savoir comment lui dire de pointer sur la valeur de celle-ci! Si quelqu’un à une petite idée de comment faire, cela serait très apprécié!^^

Je vous épargne beaucoup d’autre détails car je n’en crois pas nécessaire, mais si jamais vous en voulez plus, dites-le!^^

Merci d’avance! =)
Edité le 08/05/2009 à 00:55

Qui ça “il” ??

Le grand méchant exécuteur de Javascript. Le méchant, je l’aurai un jour.! :slight_smile:

Si tu pouvais être plus précis, ou compréhensible? Car là… sauf à avoir un exemple vivant de ton problème…

Bien c’est que je passe en paramètre le nom de mon formulaire, donc la variable “nom” contient la valeur “patate” sauf que dans window.document.commande.nom.value, ce n’est pas le contenu de la variable “nom” qui est utilisé, mais tout simplement la chaine de caractère “nom” alors ça génère une erreur, car le formulaire “nom” n’existe pas, mais le formulaire “patate” lui oui, alors comment pointer sur “patate”?

J’espère que cela vous aide un peu…
Edité le 08/05/2009 à 17:21

J’ai beau regarder je ne vois pas :

  • où tu passe le nom du formulaire
  • où tu déclare/initialise la variable “nom”

Quand j’entre quelques chose dans ma zone de texte, j’appelle la fonction CalculPrix, avec en parametre, 4, la valeur du champs de texte, et le nom du formulaire.

Si tu regardes bien ensuite ma fonction:

function CalculPrix(PrixUnitaire,NbArticle,nom){

Nous retrouvons ici les 3 paramètre en question.

Et si tu ne vois pas l’initilisation de la variable “nom” c’est tout simplement parce que je ne l’ai pas mit ici car le problème n’est pas là, tout ce que je désire savoir, c’est comment prendre le contenu de ma variable “nom” pour spécifier l’accès a mon formulaire, car ma variable “nom” contient bel et bien le nom de mon formulaire, sauf que le grand méchant executeur javascript lui ne vois pas son contenu mais bien “nom” qui lui n’est pas un formulaire.

window.document.commande.nom.value

Je veux qu’il aye chercher le contenu de cette variable.
Edité le 08/05/2009 à 19:13

Désolé, je viens de voir où se trouve la déclaration de “nom” : c’est le 3ème paramètre de CalculPrix().
Mais dans ce cas je ne vois pas la déclaration ni l’initialisation de la variable “name” (lors de ton appel à CalculPrix())

Tu dis que le formulaire “patate” existe : non. Ton formulaire se nomme “commande” :neutre:

Pour accéder à l’élément (de formulaire avec name=“nom_formulaire”) dont le nom est contenu dans la variable “maVariable”, il faut faire ainsi :

window.document.nom_formulaire[maVariable]

Exemple :


var maVariable = "date";
window.document.formulaire_recherche[maVariable].value = "2009-05-08"; // Le champ nommé "date" du formulaire "formulaire_recherche" prends la valeur "2009-05-08"

Edité le 08/05/2009 à 19:57

En fait mon formulaire s’apelle commande, et le nom d’un element de mon formulaire s’appelle patate, je m’étais mal exprimer, mais par contre j’ai essayer "window.document.commande[nom].value et sa fonctionner!!!

Un gros merci! ^^ Tu es mon héros. XD
Edité le 08/05/2009 à 20:00

Mal exprimé, et mal orthographié aussi.

Tu peux aussi passer this dans le onchange pour n’avoir que le formulaire qui vient de changer.