将选项值传递给函数的问题

时间:2013-04-21 13:45:17

标签: javascript jquery

我创建了2个选择框,并且想要在每个选择框被占用时显示相应的div,因此当选择年龄时,会进行检查以确保在运行验证功能之前已选择性别,该功能已通过性别和年龄值。然而,我的问题是,当女性被传递时,它似乎被视为男性,但我不明白为什么。任何人都可以建议我如何解决这个问题?

小提琴: http://jsfiddle.net/Nyh89/2/

JS

var genderList = $('#gender'),
    ageList = $('#age'),
    gender,
    age;

genderList.on('change', function () {
    gender = $(this).find(":selected").data('gender');

    if (ageList.val()) {
        console.log(gender);
        validate(age, gender);
    }

});

ageList.on('change', function () {
    age = $(this).find(":selected").data('year');

    if (genderList.val()) {
        console.log(gender);
        validate(age, gender);
    }
});


function validate(age, gender) {

    var gen = gender;

    if (age <= 1996) {
        $('.' + gen + '-under-twelve').show();
    } else if (age >= 1997 && age <= 2002) {
        $('.' + gen + '-mid').show();
    } else {
        $('.' + gen + '-over-sixteen').show();
    }
}

1 个答案:

答案 0 :(得分:5)

您的代码在您提供的小提琴中正常工作。

但是,我认为您的HTML中存在错误:

<div class="female-under-twelve">Show male under 12 info</div>

你的div有“女性”类,但文字显示“男性”。也许这就是为什么你把它看作一个错误。