簡體   English   中英

Javascript 測驗:單選按鈕分數驗證

[英]Javascript quiz: radio button score validation

我正在學習 javascript,對於 class 作業,我正在做一個簡單的測驗。 在這里找到:http://redwood.colorado.edu/scho5922/dm2/projects/project1.html

我的問題是我無法正確驗證單選按鈕。 這可以防止計算測驗分數。 當您單擊輸入時,它會循環問題,但選擇正確答案不會增加分數。 我已經通過在 if 語句后添加警報和顯示“分數”變量的按鈕來測試這一點。 正確答案沒有提示,分數按鈕(當前版本沒有)顯示分數為 0。

JavaScript

<script>
    var beers =[
  ["New World Porter", "Avery"],
  ["Ellie's Brown Ale","Avery"] ,
  ["Out of Bounds Stout","Avery"] ,
  ["Hazed & Infused Dry Hopped Ale", "Boulder Beer"],
  ["Sweaty Betty Blonde Ale", "Boulder Beer"],
  ["Mojo IPA", "Boulder Beer"],
  ["Mama's Little Yellow Pils", "Oskar Blues"],
  ["Dale's Pale Ale", "Oskar Blues"],
  ["G'Knight Imperial Red Ale","Oskar Blues"],
  ["Old Chub Scotch Ale","Oskar Blues"]
  ] ;

var score = 0;
var questionNum = 0;
var turns = 0;

function enterF (beer){   

questionNum++;
turns++;
var question = "What brewery makes ";
document.getElementById("header").innerHTML= question + beers[questionNum][0];
var answer = document.getElementsByName("beerbut").value.checked;
if(answers[i].checked == beers[questionNum-1][1]){
score++;
alert(score);
}

}
</script>

HTML

<body onload="popup()">

<h1 id="header">What brewery makes New World Porter</h1> 

     <div class="buttons">
<form>
<label for="_avery"> Avery</label>
<input type="radio" name="beerbut" id="_avery" value="Avery">
<br><br>
<label for="_bb"> Boulder Beer</label>
<input type="radio" name="beerbut" id="_bb" value="Boulder Beer">
<br><br>
<label for="_oskar"> Oskar Blues</label>
<input type="radio" name="beerbut" id="_oskar" value="Oskar Blues">
<br><br>
<label for="lefthand"> Left Hand </label>
<input type="radio" name="beerbut" id="_lefthand" value="Left Hand">
<br><br>
<input type="button" name="enter" id="enterbut" value="enter" onClick="enterF()">

</form>
</div>

</body>
</html>

您正在嘗試同時從多個元素中獲取值。 這不是你的做法。

在 javascript 中更改此

var answer = document.getElementsByName("beerbut").value.checked;

對於這樣的事情

var elements = document.getElementsByName("beerbut");
for(i = 0; i < elements.length; i++){
   if(elements[i].checked){
        alert(elements[i].value);
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM