2016-05-24 10 views
0

zuerst im neuen Javascript und HTML, das dies für ein erforderliches Hochschulprojekt tut, also ist diese Netzentwicklung nicht meine starke Stelle. Problem ist:HTML Mehrfachformulare mit 2 Javascripts

Ich habe 2 Quiz auf der gleichen HTML-Datei mit 2 Javascript-Dateien für jeden arbeiten.

<form name="quiz"> 
    1. listen to pronunciation...<br> 
    <input type="radio" name="q1" value="a">Pedro<br> 
    <img src="images/ANIMALES/8.png" width="100" height="100" /> <br> 
    <input type="radio" name="q1" value="b">Juan<br> 
    <img src="images/ANIMALES/8.png" width="100" height="100" /> <br> 
    <input type="radio" name="q1" value="c">Luis<br> 
    <img src="images/ANIMALES/8.png" width="100" height="100" /> <br> 
    <p> 


    <input type="button" value="Get score" onClick="getScore(this.form)"> 
    <input type="reset" value="Clear"><p> 
    Score = <input type=text size=15 name="percentage"><br> 
    Correct answers:<br> 
    <textarea name="solutions" wrap="virtual" rows="4" cols="40"></textarea> 
    </form> 

in der gleichen HTML-Seite dieser

 <form name="quiz2"> 
     1. listen to pronunciation...<br> 
     <input type="radio" name="q2" value="a">Pedro<br> 
     <img src="images/ANIMALES/8.png" width="100" height="100" /> <br> 
     <input type="radio" name="q2" value="b">Juan<br> 
     <img src="images/ANIMALES/8.png" width="100" height="100" /> <br> 
     <input type="radio" name="q2" value="c">Luis<br> 
     <img src="images/ANIMALES/8.png" width="100" height="100" /> <br> 
     <p> 


     <input type="button" value="Get score2" onClick="getScore2(this.form)"> 
     <input type="reset" value="Clear"><p> 
     Score = <input type=text size=15 name="percentage"><br> 
     Correct answers:<br> 
     <textarea name="solutions" wrap="virtual" rows="4" cols="40"></textarea> 
     </form> 

javascripts Dateien sind javascript1.js und javascript2.js

var numQues = 1; 
var numChoi = 3; 

var answers = new Array(5); 
answers[0] = "b"; 



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

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

    score = Math.round(score/numQues*100); 
    form.percentage.value = score + "%"; 

    var correctAnswers = ""; 
    for (i=1; i<=numQues; i++) { 
    correctAnswers += i + ". " + answers[i-1] + "\r\n"; 
    } 
    form.solutions.value = correctAnswers; 

} 

und die zweiten

(die in Quiz HTML-Generator gefunden)
var numQues = 1; 
var numChoi = 3; 

var answers = new Array(5); 
answers[0] = "a"; 


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

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

    score = Math.round(score/numQues*100); 
    form.percentage.value = score + "%"; 

    var correctAnswers = ""; 
    for (i=1; i<=numQues; i++) { 
    correctAnswers += i + ". " + answers[i-1] + "\r\n"; 
    } 
    form.solutions.value = correctAnswers; 

} 

Jedoch b andere Formen nehmen immer die gleiche Antwort ("a"), eine soll richtige Antwort sein "b", eine andere "a", irgendeinen Hinweis, was ich falsch mache?

+0

Wiederhole dich nicht: http://c2.com/cgi/wiki?DontRepeatYourself –

Antwort

1

Ihre Variablen haben die gleichen Namen und sind im selben Bereich. Sie übersteuern sich gegenseitig.

+1

danke, ich wusste nicht, wie Javascript funktionierte, obwohl jede Datei die gleichen Variablen wie in jedem anderen Sprache haben könnte –

Verwandte Themen