2015-10-18 90 views
0

我無法弄清楚這裏發生了什麼。這是我用單選按鈕寫的一個小測驗。這是我第一次玩弄形式和JavaScript。我不明白爲什麼分數總是1.問題是,在提交時,它只會更新爲第二個答案的+分數。當我刪除2nd +分數時,值保持爲0,當我將第二個答案的+分數更改爲10時,分數爲10.會非常感謝您的幫助。提交的Javascript表單分數更新

Javascript代碼:

function validateRadio(obj, correct) { 

       var result = 0; 
       var i; 
       var l = obj.lenght; 

       for (i = 0; i < l; i++) { 

        if(obj[i].checked == true && obj[i].value == correct) { 

         result = 1; 

        } 

       } 

       if (!result && obj[i].value == correct) { 

        result = 1; 

       } 

       return result; 

      }   


     function validateSubmit(obj) { 

      //configuration    
      var score = 0; 

      //cache DOM     
      var scoreMsg = document.getElementById('scoreMsg'); 

      //Score update on correct asnwer 

      if (validateRadio(obj.radAns1, 2)) { 

       score += 1; 

      } 

      if (validateRadio(obj.radAns2, 1)) { 

       score += 1; 

      } 

      if (validateRadio(obj.radAns3, 3)) { 

       score += 1; 

      } 

      if (validateRadio(obj.radAns4, 5)) { 

       score += 1; 

      } 

      if (validateRadio(obj.radAns5, 4)) { 

       score += 1; 

      } 

      scoreMsg.innerHTML = score; 

} 

HTML代碼;

<form onsubmit="validateSubmit(this);return false;" action='#'> 

       <div id="pytanie 1" class="pytania"> 

        <span class="pytanie-numer">Pytanie 1</span> <br><br> 

        <span class="pytanie">Do ktorej klasy chodzi lama?</span> 

        <input type="radio" name="radAns1" value="1" checked>Liceum 
        <input type="radio" name="radAns1" value="2">Gimbazjum 
        <input type="radio" name="radAns1" value="3">Podstawowka 
        <input type="radio" name="radAns1" value="4">Zawodowka 
        <input type="radio" name="radAns1" value="5">Technikum 

       </div><br><br> 

       <div id="pytanie 2" class="pytania"> 

        <span class="pytanie-numer">Pytanie 2</span> <br><br> 

        <span class="pytanie">Jakiego radia slucha lama?</span> 

        <input type="radio" name="radAns2" value="1" checked>Radio Maryja 
        <input type="radio" name="radAns2" value="2">Radio Gold 
        <input type="radio" name="radAns2" value="3">Radio Kaszebe 
        <input type="radio" name="radAns2" value="4">Eska-Tv 
        <input type="radio" name="radAns2" value="5">Radio Z/Radio RMF-FM 

       </div><br><br> 

       <div id="pytanie 3" class="pytania"> 

        <span class="pytanie-numer">Pytanie 3</span> <br><br> 

        <span class="pytanie">Z czego sklada sie dieta lamy?</span> 

        <input type="radio" name="radAns3" value="1" checked>Z marchwi 
        <input type="radio" name="radAns3" value="2">Z jablka 
        <input type="radio" name="radAns3" value="3">Z galazek 
        <input type="radio" name="radAns3" value="4">Z grzybow 
        <input type="radio" name="radAns3" value="5">Z siana 

       </div><br><br> 

       <div id="pytanie 4" class="pytania"> 

        <span class="pytanie-numer">Pytanie 4</span> <br><br> 

        <span class="pytanie">Okresl skilla w CS'a lamy.</span> 

        <input type="radio" name="radAns4" value="1" checked>Noob 
        <input type="radio" name="radAns4" value="2">Silver 
        <input type="radio" name="radAns4" value="3">Lama 
        <input type="radio" name="radAns4" value="4">Ciota 
        <input type="radio" name="radAns4" value="5">Wszystkie odpowiedzi 

       </div><br><br> 

       <div id="pytanie 5" class="pytania"> 

        <span class="pytanie-numer">Pytanie 5</span> <br><br> 

        <span class="pytanie">Czy lama jedzie autem/rowerem?</span> 

        <input type="radio" name="radAns5" value="1" checked>Nie bo, nie umie jezdzic 
        <input type="radio" name="radAns5" value="2">Nie, bo jest za glupi 
        <input type="radio" name="radAns5" value="3">Nie bo, ma kopyta 
        <input type="radio" name="radAns5" value="4">Nie bo, zostal skocony 
        <input type="radio" name="radAns5" value="5">Nie bo, jest debilem i wszyskie odpowiedzi powyzej 

       </div><br><br> 

       <input type="submit" value="Wyslij odpowiedzi"> 

      </form> 
+0

我發現這個錯誤在for循環之外的validateRadio中,我包含了索引值 –

回答

0

也許在 'validateRadio' 功能的Javascript代碼可以更容易:

//將HTML

<form onsubmit="validateSubmit(this);return false;" action='#'> 
    <div id="pytanie 1" class="pytania"> 
     <span class="pytanie-numer">Pytanie 1</span> <br><br> 
     <span class="pytanie">Do ktorej klasy chodzi lama?</span> 
     <input type="radio" name="radAns1" value="1" checked>Liceum 
     <input type="radio" name="radAns1" value="2">Gimbazjum 
     <input type="radio" name="radAns1" value="3">Podstawowka 
     <input type="radio" name="radAns1" value="4">Zawodowka 
     <input type="radio" name="radAns1" value="5">Technikum 
    </div><br><br> 
    <div id="pytanie 2" class="pytania"> 
     <span class="pytanie-numer">Pytanie 2</span> <br><br> 
     <span class="pytanie">Jakiego radia slucha lama?</span> 
     <input type="radio" name="radAns2" value="1" checked>Radio Maryja 
     <input type="radio" name="radAns2" value="2">Radio Gold 
     <input type="radio" name="radAns2" value="3">Radio Kaszebe 
     <input type="radio" name="radAns2" value="4">Eska-Tv 
     <input type="radio" name="radAns2" value="5">Radio Z/Radio RMF-FM 
    </div><br><br> 
    <div id="pytanie 3" class="pytania"> 
     <span class="pytanie-numer">Pytanie 3</span> <br><br> 
     <span class="pytanie">Z czego sklada sie dieta lamy?</span> 
     <input type="radio" name="radAns3" value="1" checked>Z marchwi 
     <input type="radio" name="radAns3" value="2">Z jablka 
     <input type="radio" name="radAns3" value="3">Z galazek 
     <input type="radio" name="radAns3" value="4">Z grzybow 
     <input type="radio" name="radAns3" value="5">Z siana 
    </div><br><br> 
    <div id="pytanie 4" class="pytania"> 
     <span class="pytanie-numer">Pytanie 4</span> <br><br> 
     <span class="pytanie">Okresl skilla w CS'a lamy.</span> 
     <input type="radio" name="radAns4" value="1" checked>Noob 
     <input type="radio" name="radAns4" value="2">Silver 
     <input type="radio" name="radAns4" value="3">Lama 
     <input type="radio" name="radAns4" value="4">Ciota 
     <input type="radio" name="radAns4" value="5">Wszystkie odpowiedzi 
    </div><br><br> 
    <div id="pytanie 5" class="pytania"> 
     <span class="pytanie-numer">Pytanie 5</span> <br><br> 
     <span class="pytanie">Czy lama jedzie autem/rowerem?</span> 
     <input type="radio" name="radAns5" value="1" checked>Nie bo, nie umie jezdzic 
     <input type="radio" name="radAns5" value="2">Nie, bo jest za glupi 
     <input type="radio" name="radAns5" value="3">Nie bo, ma kopyta 
     <input type="radio" name="radAns5" value="4">Nie bo, zostal skocony 
     <input type="radio" name="radAns5" value="5">Nie bo, jest debilem i wszyskie odpowiedzi powyzej 
    </div><br><br> 
    <input type="submit" value="Wyslij odpowiedzi"> 
</form> 
<div id="scoreMsg"></div> 

// JavaScript的

function validateRadio(obj, correct) { 
    return obj.value == correct; 
} 

function validateSubmit(obj) { 
    var score = 0; 
    var scoreMsg = document.getElementById('scoreMsg'); 

    if (validateRadio(obj.radAns1, 2)) { 
     score += 1; 
    } 

    if (validateRadio(obj.radAns2, 1)) { 
     score += 1; 
    } 

    if (validateRadio(obj.radAns3, 3)) { 
     score += 1; 
    } 

    if (validateRadio(obj.radAns4, 5)) { 
     score += 1; 
    } 

    if (validateRadio(obj.radAns5, 4)) { 
     score += 1; 
    } 
    scoreMsg.innerHTML = score; 
}