Javascript

Fermé
Irolaan - 24 sept. 2008 à 07:08
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 - 25 sept. 2008 à 20:31
Bonjour,

J'ai deux question!

1. Qu'elle est la différence entre <script language="JavaScript">, <script type="text/JavaScript"> et <script>.

2. J'ai deux fonctions qui se servent des mêmes objets d'un formulaire, mais lorsque la deuxième fonction tente de manipuler ces objets j'obtiens <'obj' is undefined> comme message d'erreur.

Après plusieurs heures d'essais et comme je débute en Javascript je n'ai toujours pas trouvé de solution.

J'ai essayer de mettre les fonctions dans <head>,dans <body>, de les placer dans des conteneurs <script> différents, rien ne marche.

Au besoin je peux coller mon script pour vous permettre de trouver l'erreur (sans doute bien évidente pour un habitué) que j'ai commise.

6 réponses

incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
25 sept. 2008 à 08:55
Salut,
je ne suis pas un spécialiste, mais je pense que le problème est que obj n'est défini nulle part, du moins dans le code que tu as envoyé. A mon avis, il faut l'initialiser et soit le passer en paramètre à la fonction qui l'utilise, soit le déclarer dans le script principal comme une variable globale.

IC
1
Salut!

Voilà mon script, les lignes qui causent problème font toutes référence à un objet se trouvant dans le code HTML.
La ligne en souligné vient de l'autre fonction qui est OK.
J'ai rajouté la ligne en gras italique pour montrer que je ne peux même pas inscrire directement une valeur dans l'objet.

L'erreur apparait quand je sélectionne un nom dans la liste déroulante.

J'ai probablement fait une bête erreur de débutant!

Merci!

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>TOS</title>
<script type="text/JavaScript">
function distance_stel()
{
var vl = 299792.458;
var al = 31557600*vl;
var résultat = Math.round(Math.pow(obj.facteur1.value,3)*1000)/1000;
var planètes=document.getElementById("planètes");
document.getElementById("distance").value=planètes.options[planètes.selectedIndex].value;
var dist_p = document.getElementById("facteur1").value*planètes.options[planètes.selectedIndex].value;
obj.jours.value = Math.round(((((obj.distance.value * al)/(obj.résultat.value * vl)/60)/60)/24)*1000)/1000;
obj.jours.value = 11
}

</script>
</head>

<body>
<form>
<select id="planètes" name="planètes" onchange="distance_stel()" >
<option value="30" selected>Andoria</option>
<option value="75">Ba'Ku</option>
<option value="110">Q'onoS</option>
<option value="33">Risa</option>
<option value="130">Romulus</option>
<option value="131.5">Rémus</option>
<option value="50">Vulcain</option>
</select>  <span class="jn12">située à </span>
<input type="text" id="distance" size="9" name="distance" value="30"><span class="jn12">
al à distorsion </span>
<input name="facteur1" id="facteur1" type="text" size="10" value="1"><span class="jn12">
il faut </span><input type="text" id="jours" name="jours" size="10">
<span class="jn12">jours </span>
</td>
 </form>
</body>

</html>
0
Salut!

J'ai trouvé la solution et c'était vraiment une erreur de débutant, j'avais oublié de mettre <select id="planètes" name="planètes" onchange="distance_stel(this.form)" > dans la ligne d'appel de la fonction.

Il semble que Javascript soit un langage très pointilleux et que j'ai beaucoup à apprendre avant de pouvoir réaliser des scripts adéquats.

J'ai beaucoup d'expérience dans la prog VB, GWBasic mais je pense qu'il me faudra tout oublier pour performer dans les langages plus structurés.

Merci de votre temps

Irolaan
0
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
24 sept. 2008 à 08:38
Salut.

Pour la première question, je ne saurai te dire exactement. Peut être ce sont des variantes qui ont subsistés au fur et à mesure de l'évolution du langage pour des questions de compatibilité avec d'anciens navigateurs. Pour ma part, j'utilise <script type="text/javascript"></script>, car c'est la même forme que pour la déclaration des feuilles de style.

Pour la seconde question, si tu pouvais en effet coller le script, ce serait plus facile.

Cdlt

IC
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
m0c88 Messages postés 8 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 26 février 2009 1
24 sept. 2008 à 09:09
Pour completer ce qu'a dit incaout, la balise "<script language="JavaScript">" est considérée comme obsolete et n'est pls correctement interprétée par tous les navigateurs, utilise donc la seconde.

Pour le reste, il faut le script...
-1
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
25 sept. 2008 à 20:31
Bonne continuation :-)

IC
-1