我有一个带有两个选项的选择下拉菜单:是/否(实际上是三个:还有“选择一个选项”没有价值)。然后有一些处理一些变量的复选框(选中时变量被添加到全局变量(称为tot),当未选中时它们被减去)。我希望复选框有两种不同的行为,具体取决于下拉选项是或否。所以我写了这个,但我认为我误解/误解了一些东西,因为它不起作用(当它没有嵌套在更改选择函数中时它起作用)。
<select name="container" id="container">
<option id="none" value="" >Select an option</option>
<option id="no" value="no" >no</option>
<option id="yes" value="yes" >yes</option>
</select>
这是javascript(带有jquery库)
var tot = 0;
$(document).ready(function () {
$("#container").change(function () {
var sel = $(this).find(":selected").attr("id")
if (sel == "no" || sel == "none") {
$("#in-category-1").click(function () {
if ($('#in-category-1').is(':checked')) {
if (tot < 60) {
tot = tot + 2.5;
} else if (tot >= 60) {
alert('Stop!');
$('#in-category-1').attr('checked', false);
}
} else if (tot > 0) {
tot = tot - 2.5;
}
functionblablabla();
});
if (sel == "yes") {
$("#in-category-1").click(function () {
if ($('#in-category-1').is(':checked')) {
if (tot < 50) {
tot = tot + 2.5;
} else if (tot >= 50) {
alert('Stop!');
$('#in-category-1').attr('checked', false);
}
} else if (tot > 0) {
tot = tot - 2.5;
}
functionblablabla2();
});
});
});
即使在页面加载时默认选择了选项(选项存储在数据库中),也会发生一些事情,所以如果没有选择同样的事情应该发生
if (($('#no').prop('defaultSelected')) || ($('#none').prop('defaultSelected')) ) {
$("#in-category-1").click(function () {
//same stuff than change select no or select none
});
}
if ($('#yes').prop('defaultSelected')) {
$("#in-category-1").click(function () {
//same stuff than change select yes
});
}
我究竟做错了什么?