我有一个带有两个选项的选择下拉列表:是/否(实际上是三个:还有“选择一个没有值的选项”)。 然后有一些处理一些变量的chekbox(当检查时,变量被添加到一个全局变量(称为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();
});
});
});
即使在页面加载时默认选择了选项(选项存储在数据库中),也会发生某些事情,因此如果选择no,则应该发生同样的事情
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
});
}
我做错了什么?
答案 0 :(得分:0)
你可以做得更好一点:
分离之前的点击事件(否则,如果选项被多次更改,事件将会消失)
$("#in-category-1").off("click");
使用快捷键
获取所选值 $(this).val();