Broblème javascript

trokkers -  
grofwa Messages postés 440 Statut Membre -
Bonjour à Tous ! [;)] Je voudrais faire un QCM et je suis face à un problèmeque voici : quand je met le champ texte au Dessus des question ca fonctionne !!! au dessous ca ne fonctionne pas!!! (je suis pas trop fort en java) Voici le code:

<html><head>
<title></title>
<script language=""><!--
var numQues = 1;
var numChoi = 4;
var answers = new Array(4);
var answers_true = new Array(4);
var answers_false = new Array(4);
answers[0] = "Parce que les intervalles de même nature n'ont pas toujours la même somme de tons et de 1/2 tons";
answers_true[0] = "Bonne réponse! ";
answers_false[0] = "Faux! Il fallait cocher la réponse c.";
function getScore(form) {
var score = 0;
var currElt;
var currSelection;
for (i=0; i<numQues; i++) {
currElt = i*(numChoi+1);
for (j=0; j<numChoi; j++) {
currSelection = form.elements[currElt + j+1];
if (currSelection.checked) {
if (currSelection.value == answers[i]) {
score++;form.elements[currElt].value=answers_true[i];break;}
else {form.elements[currElt].value=answers_false[i];}}}}
score = Math.round(score/numQues*20);
form.percentage.value = score + "/20";
var correctAnswers = "";
for (i=1; i<=numQues; i++) {correctAnswers += i + ". " + answers[i-1] + "\r\n";}}
// -->
</script>
</head>
<body bgcolor="#FFFFFF" background="ac1100.gif">
<blockquote>
<p align="center"><b></b></p>
<form>
</form>
</blockquote>
<form name="quiz">
<blockquote>
<blockquote>
<p><b>1. Pourquoi y a-t-il plusieurs espèces de secondes, de tierces, de
quartes, etc.?</b><br>
<br>
solution :
<input type="text" name="textfield" size="70">
</p>
</blockquote>
</blockquote>
<blockquote>
<blockquote>
<p>a:
<input type="radio" name="q1" value="Parce qu'il y a plusieurs instruments">
Parce qu 'il y a plusieurs instruments<br>
b:
<input type="radio" name="q1" value="Pour obtenir la somme de deux demi-tons">
Pour obtenir la somme de deux demi-tons<br>
c:
<input type="radio" name="q1" value="Parce que les intervalles de même nature n'ont pas toujours la même somme de tons et de 1/2 tons">
Car les intervalles de même nature n'ont pas toujours la même somme de
tons et de 1/2 tons<br>
d:
<input type="radio" name="q1" value="A cause de la mesure">
A cause de la mesure<br>
</p>
<p align="center">Vous obtenez :
<input type="text" name="percentage" size="3">
</p>
</blockquote>
</blockquote>
<p align="center">
<input type="button" value="Résultat" onClick="getScore(this.form)">
<p align="center"> 
</form>
<FORM>
</FORM>
</body></html>
--------------------------------------------
Voilà j'aimerai que le champ réponse se trouve en dessous des questions mais sans utiliser de calques (div).
Merci à tous...
Je vous laisse egalement le code qui ne fonctionne pas :
Celui la ne fonctionne pas pourtant c juste le champ de texte qui est deplacé. merci pour votre aide

<html><head>
<title></title>
<script language="">
<!--

var numQues = 1;
var numChoi = 4;

var answers = new Array(4);
var answers_true = new Array(4);
var answers_false = new Array(4);
answers[0] = "Parce que les intervalles de même nature n'ont pas toujours la même somme de tons et de 1/2 tons";
answers_true[0] = "Bonne réponse! ";
answers_false[0] = "Faux! Il fallait cocher la réponse c.";

function getScore(form) {
var score = 0;
var currElt;
var currSelection;

for (i=0; i<numQues; i++) {
currElt = i*(numChoi+1);
for (j=0; j<numChoi; j++) {
currSelection = form.elements[currElt + j+1];
if (currSelection.checked) {
if (currSelection.value == answers[i]) {
score++;form.elements[currElt].value=answers_true[i];break;}
else {form.elements[currElt].value=answers_false[i];}}}}

score = Math.round(score/numQues*20);
form.percentage.value = score + "/20";
var correctAnswers = "";
for (i=1; i<=numQues; i++) {correctAnswers += i + ". " + answers[i-1] + "\r\n";}}
// -->
</script>
<script language=Javascript>
<!--

<!--//IMPRIMER
function imprimer(){window.print();}
-->
//-->
</script>
</head>

<body bgcolor="#FFFFFF" background="ac1100.gif">
<blockquote>
<p align="center"><b></b></p>
<form>
</form>
</blockquote>
<form name="quiz">
<blockquote>
<blockquote>
<p><b>1. Pourquoi y a-t-il plusieurs espèces de secondes, de tierces, de
quartes, etc.?</b><br>
<br>
</p>
</blockquote>
</blockquote>
<blockquote>
<blockquote>
<p>a:
<input type="radio" name="q1" value="Parce qu'il y a plusieurs instruments">
Parce qu 'il y a plusieurs instruments<br>
b:
<input type="radio" name="q1" value="Pour obtenir la somme de deux demi-tons">
Pour obtenir la somme de deux demi-tons<br>
c:
<input type="radio" name="q1" value="Parce que les intervalles de même nature n'ont pas toujours la même somme de tons et de 1/2 tons">
Car les intervalles de même nature n'ont pas toujours la même somme de
tons et de 1/2 tons<br>
d:
<input type="radio" name="q1" value="A cause de la mesure">
A cause de la mesure<br>
solution :
<input type="text" name="textfield" size="70">
</p>
<p align="center">Vous obtenez :
<input type="text" name="percentage" size="3">
</p>
</blockquote>
</blockquote>
<p align="center">
<input type="button" value="Résultat" onClick="getScore(this.form)">
<p align="center"> 
</form>
<FORM>
</FORM>
</body></html>

Merci et à bientôt...

1 réponse

grofwa Messages postés 440 Statut Membre 479
 
Salut.

Premièrement, il n'y a pas besoin de connaître le Java pour cela, le Javascript suffit ;-) (rien à voir !)
Pour corriger ton problème, au lieu de faire
form.elements[currElt].value=answers_true[i]

fais plutot
form.textfield.value=answers_true[i]

Je pense que ce qui se passe, c'est que sinon, il prend le premier element du formulaire.

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0