我创建了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();
}
}
答案 0 :(得分:5)
您的代码在您提供的小提琴中正常工作。
但是,我认为您的HTML中存在错误:
<div class="female-under-twelve">Show male under 12 info</div>
你的div有“女性”类,但文字显示“男性”。也许这就是为什么你把它看作一个错误。