2016-05-24 2 views
0

прежде всего им новый для javascript и html, делающий это для требуемого университетского проекта, так что это веб-разработка не моя сильная сторона. Проблема:HTML несколько форм с 2 javascripts

У меня есть 2 викторины в одном файле html с двумя файлами javascript, работающими для каждого из них.

<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> 

в том же HTML страницы это

 <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 файлы являются javascript1.js и javascript2.js (найдены те, в викторина HTML генератор)

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; 

} 

и второй

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; 

} 

Однако b oth формы всегда принимают один и тот же ответ («a»), один должен быть правильным ответом «b», другим «a», любой подсказкой, что я делаю неправильно?

+0

Не повторяйте себя: http://c2.com/cgi/wiki?DontRepeatYourself –

ответ

1

Ваши переменные имеют одинаковые имена и находятся в одном и том же объеме. Они переопределяют друг друга.

+1

спасибо, я не знал, как работает javascript, хотя каждый файл может иметь одинаковые переменные, например, в любом другом языке –

Смежные вопросы