0

私は小さなjsクイズゲームを構築しています。以下のコードでは、ユーザーは回答を選択し、回答ボタンをクリックして送信する必要があります。これにより、回答が正しいかどうかがチェックされます。つまり、2 つのステップがあります。まず、選択します。第二に、提出します。イベントが選択時に発生するように、2 番目のステップを排除する方法があるかどうかを知りたかったのです。

必要に応じて、ここにフィドルがあります。

http://jsfiddle.net/mjmitche/D5H9z/

チェックを開始するすべての選択ボックスに対して一般的なイベントを作成する方法がわからないと思いますが、同時に、選択を検査して、それが正しいかどうかを確認できます。

ゲームは最終的にアンダースコア テンプレートのようなものを使用して、フィールドに質問と回答の選択肢を挿入する予定です。それが設定方法に影響する場合は、考慮してください。

前もって感謝します

html

 <fieldset id="question1">
        <legend>What is the answer to this question?</legend>
        <label><input type="radio" name="q1" value="right"> Right answer</label>
        <label><input type="radio" name="q1" value="wrong"> Wrong answer</label>
            <ul>

    </fieldset>

            <input type="button" id="answer">

js

 document.getElementById("answer").onclick = validate;
    function validate() {
            var radios;
            var i;
            var right;
            radios = document.getElementById("question1").getElementsByTagName("input");

            right = false;
            for(i = 0; i < radios.length; i++) {
                    if(radios[i].value == "right" && radios[i].checked == true) {
                          right = true;
                    }
            }

            if(right) {
                    alert("You answered correctly");
            } else {
                    alert("Wrong answer");
            }
    }

更新、ゲームの最終バージョンは、このようなイベントをサポートするバックボーンを使用します

events:{ 'click #sayhello': 'validate'
    },

この質問に対する最初の 2 つの回答は「インライン」ソリューションを提案しましたが、バックボーンのイベント処理に適合するものを望んでいました。#sayhelloこのコードで検証機能をトリガーするには、何を置き換えますか。

4

2 に答える 2

0

onclick各ラジオ ボタンにハンドラーを適用します。

<input type="radio" name="q1" value="right" onclick="validate">

ここでフィドル

于 2013-01-31T21:34:56.700 に答える
-1

これを試して:

<fieldset id="question1">
    <legend>What is the answer to this question?</legend>
    <label><input type="radio" name="q1" value="right" onclick="javascript:check('right')"/> Right answer</label>
    <label><input type="radio" name="q1" value="wrong" onclick="javascript:check('wrong')"/> Wrong answer</label>


<script>
    function check(answer){
        alert(answer+" answer");
    }

</script>

http://jsfiddle.net/D5H9z/3/

于 2013-01-31T21:53:08.137 に答える