1

我正在尝试创建一个多反馈 jquery 问题我需要一些关于我的 if 语句代码的帮助。我有一个正确答案,但希望在选择每个错误答案时有不同的反馈提醒。我希望它为每个错误的答案提供不同的反馈。例如,“您选择了灰色,有更好的答案,请重新选择。” 或“你选择了黑色,有更好的答案。”

到目前为止,这是我的代码。

http://jsfiddle.net/nhxuy/

查询:

$(function () {
    //variable of correct answers   
    var rules = ['correct'];

    //force checkboxes to work like radio buttons
    var boxes = $("input[name=q4]:checkbox").click(function () {
        boxes.not(this).attr('checked', false);
    });



    $('.submit4').click(function (e) {
        e.preventDefault();
        //check correct answers from var above
        if ($('input[name=q4]:checked').map(function (i, v) {
            return v.id;
        }).get().join(',') == rules[0]) {
            alert("Correct! Reflective colors should make you more visible at night");

        } else {

            $('.grey:checked').attr('disabled', 'disabled').removeAttr('checked');
            alert("grey is wrong... it might not be bright enough.");
        }



    });
});

HTML:

 <h1> Question  </h1>

<p>What is the best color to wear after dark?</p>
<form>
    <label>
        <input type="checkbox" name="q4" class="grey"></input>grey</label>
    <label>
        <input type="checkbox" name="q4" class="black"></input>black</label>
    <label>
        <input type="checkbox" name="q4" class="white"></input>white</label>
    <label>
        <input type="checkbox" name="q4" class="red"></input>red</label>
    <label>
        <input type="checkbox" name="q4" id="correct"></input>reflective yellow</label>
    <br />
    <button class="submit4">Submit</button>
</form>
4

1 回答 1

1

在这种情况下,我建议您使用类似的switch东西(只需实现您自己的逻辑):

$('.submit4').click(function (e) {
    e.preventDefault();
    //check correct answers from var above
    var result;
    switch($('input[name=q4]:checked').attr('class')){
        case 'grey': 
            result = "it's grey";
            break;
        case 'black':
            result = "it's black";
            break;
        case 'white':
            result = "it's white";
            break;
        case 'red':
            result = "it's red";
            break;
        default:
            result = 'Correct answer!';
            break;
    }
    alert(result);

});

在这种情况下,开关通过获取所选复选框的类来工作,您可以在每种情况下做任何您想做的事情,而不是使用一堆 if/else ...

Jsfiddle 演示:http: //jsfiddle.net/darkajax/q4rJ8/

于 2013-05-14T21:26:25.583 回答