Problème Javascript : fonction indéfinie
Résolu
TheLamia
Messages postés
76
Date d'inscription
Statut
Membre
Dernière intervention
-
TheLamia Messages postés 76 Date d'inscription Statut Membre Dernière intervention -
TheLamia Messages postés 76 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dois réaliser un formulaire géré par du Javascript.
Mes fonctions Javascript sont dans un fichier .js inclu dans ma page HTML.
Voici le code de la page HTML :
Voici le fichier .js :
Mon problème : dès que je clique sur un produit (choix dans le select id=\"produit\" ), j'ai un message d'erreur : Firefox me dit "affLigne() is not defined Ligne 1", IE me dit "Object Expected Lgne 1 Car 1". J'ai beau cherché dans tous les sens, je ne comprends pas pourquoi la fonction affLigne() n'est pas reconnue.
Vous pouvez consulter les pages ici :
http://www.gap.univ-mrs.fr/~gertz/javascript/TpJs/formulaire.html
http://www.gap.univ-mrs.fr/~gertz/javascript/TpJs/fct.js
Auriez-vous une petite idée, une piste, une direction, quoi que ce soit qui pourrait me sortir de là ?
merci d'avance à tous.
Je dois réaliser un formulaire géré par du Javascript.
Mes fonctions Javascript sont dans un fichier .js inclu dans ma page HTML.
Voici le code de la page HTML :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>TP Javascript - 29/11/2007</title> <script language="JavaScript" src="fct.js"></script> </head> <body onload="afficheForm()"> </body> </html>
Voici le fichier .js :
// JavaScript Document Prod = new Array("Pc", "Imprimante", "Disque Dur"); Prix = new Array(800, 80, 100); function affLigne(l) { document.getElementById("prix"+l).value = Prix[l]; //document.forms[0].qte[l].value = 1; } function afficheForm() { var ch = ''; ch += "<form id=\"form1\" method=\"post\" action=\"ok.html\"><fieldset><legend>Identification</legend><p>Nom : <input type=\"text\" id=\"nom\" /> Prénom : <input type=\"text\" id=\"prenom\" /><br />Adresse : <input id=\"adresse\" type=\"text\" size=\"70\" /><br />Code Postal : <input type=\"text\" id=\"cp\" /> Ville : <input type=\"text\" id=\"ville\" /><br />Téléphone : <input type=\"text\" id=\"tel\" /> E-mail : <input type=\"text\" id=\"mail\" /></p></fieldset><fieldset><legend>Sélection des produits</legend><p>" for (var i = 0; i < 3; i++) { ch += "<select id=\"produit\" onchange=\"affLigne("+i+")\">"; ch += "<option value=\"noP\">Choisir</option>"; for (var j = 0; j < 3; j++) { ch += "<option value=\"nom\">"+Prod[j]+"</option>"; } ch += "</select> "; ch += "<input type=\"text\" id=\"prix"+i+"\" /> <input type=\"text\" id=\"qte"+i+"\" /> <input type=\"button\" id=\"plus\" value=\"+\" /> <input type=\"button\" id=\"moins\" value=\"-\" /> <input type=\"button\" id=\"effacer\" value=\"X\" /><br />"; } ch += "</p></fieldset><fieldset><p>Mt HT : <input type=\"text\" id=\"ht\" /><br /> Mt TVA (19,6%) : <input type=\"text\" id=\"tva\" /><br />Mt TTC : <input type=\"text\" id=\"ttc\" /></p></fieldset></form>"; document.write(ch); }
Mon problème : dès que je clique sur un produit (choix dans le select id=\"produit\" ), j'ai un message d'erreur : Firefox me dit "affLigne() is not defined Ligne 1", IE me dit "Object Expected Lgne 1 Car 1". J'ai beau cherché dans tous les sens, je ne comprends pas pourquoi la fonction affLigne() n'est pas reconnue.
Vous pouvez consulter les pages ici :
http://www.gap.univ-mrs.fr/~gertz/javascript/TpJs/formulaire.html
http://www.gap.univ-mrs.fr/~gertz/javascript/TpJs/fct.js
Auriez-vous une petite idée, une piste, une direction, quoi que ce soit qui pourrait me sortir de là ?
merci d'avance à tous.
A voir également:
- Problème Javascript : fonction indéfinie
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Erreur #125 javascript - Forum Mozilla Firefox
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
3 réponses
Bonjour,
Le problème vient du fait que tu utilises l'instruction document.write(ch);
en dehors des tags <body> et </body>, ce qui crée en fait un nouveau document HTML qui ne contient que le code depuis le tag <form> jusqu'au tag </form>, il suffit d'afficher le code source de ta page et tu verras ce que je veux dire.
Si tu enlèves cette instruction à la fin de ton script et utilises le code suivant dans le code HTML:
celà devrait fonctionner.
A plus
Le problème vient du fait que tu utilises l'instruction document.write(ch);
en dehors des tags <body> et </body>, ce qui crée en fait un nouveau document HTML qui ne contient que le code depuis le tag <form> jusqu'au tag </form>, il suffit d'afficher le code source de ta page et tu verras ce que je veux dire.
Si tu enlèves cette instruction à la fin de ton script et utilises le code suivant dans le code HTML:
<body> <script> afficheForm(); </script> </body>
celà devrait fonctionner.
A plus