1

JavaScript/Html を使用して「クイズ」を作成しようとしています。始める前に、私はこの投稿の 4 時間前にこの言語を紹介されたので、しばらくお待ちください。これは私がこれまでに書いたものです:

<!DOCTYPE html>
<html>
<body>

<form name="input" action="html_form_action.asp" method="get">
<input type="radio" name="Q1" value="A1">A1<br>
<input type="radio" name="Q1" value="A2">A2<br>
<input type="radio" name="Q1" value="A3">A3<br>
<input type="radio" name="Q1" value="A4">A4<br><br>
<input type="radio" name="Q2" value="A1">A1<br>
<input type="radio" name="Q2" value="A2">A2<br>
<input type="radio" name="Q2" value="A3">A3<br>
<input type="radio" name="Q2" value="A4">A4<br><br>
<input type="radio" name="Q3" value="A1">A1<br>
<input type="radio" name="Q3" value="A2">A2<br>
<input type="radio" name="Q3" value="A3">A3<br>
<input type="radio" name="Q3" value="A4">A4<br><br>
<input type="radio" name="Q4" value="A1">A1<br>
<input type="radio" name="Q4" value="A2">A2<br>
<input type="radio" name="Q4" value="A3">A3<br>
<input type="radio" name="Q4" value="A4">A4<br><br>
<input type="radio" name="Q5" value="A1">A1<br>
<input type="radio" name="Q5" value="A2">A2<br>
<input type="radio" name="Q5" value="A3">A3<br>
<input type="radio" name="Q5" value="A4">A4<br><br>
<input type="radio" name="Q6" value="A1">A1<br>
<input type="radio" name="Q6" value="A2">A2<br>
<input type="radio" name="Q6" value="A3">A3<br>
<input type="radio" name="Q6" value="A4">A4<br><br>
<input type="radio" name="Q7" value="A1">A1<br>
<input type="radio" name="Q7" value="A2">A2<br>
<input type="radio" name="Q7" value="A3">A3<br>
<input type="radio" name="Q7" value="A4">A4<br><br>
<input type="radio" name="Q8" value="A1">A1<br>
<input type="radio" name="Q8" value="A2">A2<br>
<input type="radio" name="Q8" value="A3">A3<br>
<input type="radio" name="Q8" value="A4">A4<br><br>
<input type="radio" name="Q9" value="A1">A1<br>
<input type="radio" name="Q9" value="A2">A2<br>
<input type="radio" name="Q9" value="A3">A3<br>
<input type="radio" name="Q9" value="A4">A4<br><br>
<input type="radio" name="Q10" value="A1">A1<br>
<input type="radio" name="Q10" value="A2">A2<br>
<input type="radio" name="Q10" value="A3">A3<br>
<input type="radio" name="Q10" value="A4">A4<br><br>
<script>

function checkTest()
{
var count = 0;
if ($('input:radio[name=Q1]:checked').val() == A1);
{
count = count + 1;
}
if ($('input:radio[name=Q2]:checked').val() == A1);
{
count = count + 1;
}
if ($('input:radio[name=Q3]:checked').val() == A1);
{
count = count + 1;
}
if ($('input:radio[name=Q4]:checked').val() == A1);
{
count = count + 1;
}
if ($('input:radio[name=Q5]:checked').val() == A1);
{
count = count + 1;
}
if ($('input:radio[name=Q6]:checked').val() == A1);
{
count = count + 1;
}
if ($('input:radio[name=Q7]:checked').val() == A1);
{
count = count + 1;
}
if ($('input:radio[name=Q8]:checked').val() == A1);
{
count = count + 1;
}
if ($('input:radio[name=Q9]:checked').val() == A1);
{
count = count + 1;
}
if ($('input:radio[name=Q10]:checked').val() == A1);
{
count = count + 1;
}
if (count > 6)
{
alert("Congratulations! You Passed!");
}
else
{
alert("You answered too many questions incorrectly. Try again.");
}
}
</script>
<button type="button" onclick="checkTest()">Submit Test!</button>
</form> 

すべての回答で「A1」を選択した場合、おめでとうアラートが表示されると思いますが、何も表示されません。私は

($('input:radio[name=Q10]:checked').val()

このウェブサイトの別の投稿からそのままなので、問題はないと思います。助けてください!!

編集:Javascriptがこれを行うには悪い方法であることは理解していますが、私は本当に言語をダウンさせようとしているだけであり、さらに、これは非常に小規模でのみ使用されます.

4

3 に答える 3

4

<body>タグの直前に次を追加します。

<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>

これがページに読み込まれ、オブジェクトjQueryを使用できるようになります。$


構文エラー

  • ;各ステートメントの最後に置いてif、条件が満たされているかどうかにかかわらずコードを実行できないようにしています!
  • == "A1"一部間違った方法で書きました: == A1JavaScript が、選択されたオブジェクトの値を という空の変数とA1比較しようとします。

JavaScript/jQuery

function checkTest() {
    var count = 0;

    if ($('input[type="radio"][name=Q1]:checked').val() == "A1") {
        count++;
    }
    if ($('input[type="radio"][name=Q2]:checked').val() == "A1") {
        count++;
    }
    if ($('input[type="radio"][name=Q3]:checked').val() == "A1") {
        count++;
    }
    if ($('input[type="radio"][name=Q4]:checked').val() == "A1") {
        count++;
    }
    if ($('input[type="radio"][name=Q5]:checked').val() == "A1") {
        count++;
    }
    if ($('input[type="radio"][name=Q6]:checked').val() == "A1") {
        count++;
    }
    if ($('input[type="radio"][name=Q7]:checked').val() == "A1") {
        count++;
    }
    if ($('input[type="radio"][name=Q8]:checked').val() == "A1") {
        count++;
    }
    if ($('input[type="radio"][name=Q9]:checked').val() == "A1") {
        count++;
    }
    if ($('input[type="radio"][name=Q10]:checked').val() == "A1") {
        count++;
    }
    if (count > 6) {
        alert("Congratulations! You Passed!");
    } else {
        alert("You answered too many questions incorrectly. Try again.");
    }
}

ライブデモ (JSFiddle)

PS: HTML と JavaScript のコーディングを始めたばかりの場合は、jQuery を使用しないことを強くお勧めします。

于 2013-07-11T20:06:41.763 に答える
1
($('input:radio[name=Q10]:checked').val() // belongs to jQuery

を使用しているので、それぞれのスクリプトを追加します。

また、idステートメントは

if ($('input:radio[name=Q1]:checked').val() === 'A1');

右側の値に ''(引用符) がありません。 の===代わりに使用することをお勧めします==

于 2013-07-11T20:11:12.417 に答える
1

ラジオボタンのグループでは、とにかく1つしかcheckTestチェックできないため、機能を短縮できます。

function checkTest() {
    var count = 0;

    for (var i=0,$el=$('input[type="radio"]:checked'),size=$el.size(); i<size; i++){ if ($el.eq(i).val() === 'A1') count++; }

    if (count > 6) alert("Congratulations! You Passed!");
    else alert("You answered too many questions incorrectly. Try again.");
}
于 2013-07-11T20:24:26.263 に答える