0

私は投稿/スタックオーバーフローが初めてなので、間違いを許してください。条件ステートメントに配置する値を保存する必要がある複数のボタンとチェックボックスがあります。

HTML コード:

<h1>SECTION 1: GENDER</h1>
    <p>What is your gender?</p>
    <input type="button" onclick="storeGender(this.value)" value="Male"/>
    <input type="button" onclick="storeGender(this.value)" value="Female"/>

    <hr />

    <h1>SECTION 2: AGE</h1>
    <p>What is your age?</p>
    <input type="button" onclick="storeAge(this.value)" value="18–22"/>
    <input type="button" onclick="storeAge(this.value)" value="23–30"/>

    <hr />

    <h1>SECTION 3: TRAITS</h1>
    <h3>Choose Two:</h3>
    <form>
        <input name="field" type="checkbox" value="1"/> Casual <br />
        <input name="field" type="checkbox" value="10"/> Cheerful <br />
        <input name="field" type="checkbox" value="100"/> Confident  <br />
        <input name="field" type="checkbox" value="1000"/> Tough  <br />
        <input type="button" id="storeTraits" value="SUBMIT" /> <br />
    </form>

    <hr />

    <h2>Here is what I suggest</h2>
    <p id="feedback">Feedback goes here.</p>

jQuery コード:

 // set up variables
var gender;
var age;
var string;

$(document).ready(function() {
    startGame();
    $("#storeTraits").click( function() {
        serializeCheckbox();
    }
    ); }
);

function startGame() {
    document.getElementById("feedback").innerHTML = "Answer all the questions.";
}

function storeGender(value) {
    gender = value;
}

function storeAge(value) {
    age = value;
}

function serializeCheckbox() {
    // clear out any previous selections
    string = [ ];
    var inputs = document.getElementsByTagName('input');

    for( var i = 0; i < inputs.length; i++ ) {
        if(inputs[i].type == "checkbox" && inputs[i].name == "field") {
            if(inputs[i].checked == true) {
                string.push(inputs[i].value);
            }
        }
    }
    checkFeedback();
}

//Limit number of checkbox selections
$(function(){
    var max = 2;
    var checkboxes = $('input[type="checkbox"]');

    checkboxes.change(function(){
        var current = checkboxes.filter(':checked').length;
        checkboxes.filter(':not(:checked)').prop('disabled', current >= max);
    });
});

function checkFeedback() {
    if(gender == "Male") {
        if (age == "18–22" && string == 11){
            document.getElementById("feedback").innerHTML = "test1";
        } else if (age == "18–22" && string == 110){
            document.getElementById("feedback").innerHTML = "test2";
        } else if (age == "18–22" && string == 1100){
            document.getElementById("feedback").innerHTML = "test3";
        } else if (age == "18–22" && string == 101){
            document.getElementById("feedback").innerHTML = "test4";
        } 
    }
}

JSFiddle でこのコードを見つけました: http://jsfiddle.net/GNDAG/これは、特性値を一緒に追加するためにやりたいことです。ただし、それを取り入れようとすると、条件ステートメントが機能しません。jsfiddle の例からコードを追加して、条件ステートメントを機能させるにはどうすればよいですか? ありがとうございました!

4

1 に答える 1