复选框根据下拉选项启用禁用
checkbox enable disable based on dropdown option
我创建了一个下拉框和几个复选框。复选框根据所选的下拉选项启用和禁用。
代码如下:
<select id="Objective" form="theForm" name="category" >
<option value="pi">Pipi</option>
<option value="theta">thethaatha</option>
<option value="sigma">sigmama</option>
</select>
<div>
<input type="checkbox" class="dissable" onclick="check();" value="1" /> Teas<br>
<input type="checkbox" class="dissable" onclick="check();" value="1" /> Capri<br>
<input type="checkbox" class="dissable" onclick="check();" value="2" /> Kids <br>
<input type="checkbox" class="dissable" onclick="check();" value="2" /> Food <br>
</div>
<script>
$("#Objective").on("change", function () {
if ($(this).val() == "theta") {
$(".dissable[value='1']").prop("disabled", true);
} else if ($(this).val() == "pi") {
$(".dissable[value='2']").prop("disabled", true);
} else {
//donothing
}
}).trigger('change');
</script>
每当我从下拉框中选择pi时,它都很好,value ="2"孩子和食物都被禁用,但当我从每个复选框中选择theta时,它都被禁用,这不应该像这样。只有value ="1"应该被禁用,即tea和capri。
帮助纠正代码的问题。
一种简单的方法是在禁用选中的复选框之前启用所有复选框,以确保只有您想要禁用的复选框;
// enable all checkboxes
$(".dissable").prop("disabled", false);
,然后你可以禁用选定的:
// disabling some of them
$(".dissable[value='1']").prop("disabled", true);
工作示例:http://codepen.io/anon/pen/bwJaEp?editors=1010
您需要在每次选择更改之间撤销以便禁用的那个重新启用,因此如果您在函数开头添加这两行,它将起作用
$(".dissable[value='1']").prop("disabled", true);
$(".dissable[value='2']").prop("disabled", true);
旁注,正如"Ezequias Dinella"在他的回答中显示的那样,要启用/禁用所有你也可以删除属性,像这样$(". disable")。道具("禁用",真的);
示例$("#Objective").on("change", function () {
$(".dissable[value='1']").prop("disabled", false);
$(".dissable[value='2']").prop("disabled", false);
if ($(this).val() == "theta") {
$(".dissable[value='1']").prop("disabled", true);
} else if ($(this).val() == "pi") {
$(".dissable[value='2']").prop("disabled", true);
} else {
//donothing
$(".dissable[value='1']").prop("disabled", true);
$(".dissable[value='2']").prop("disabled", true);
}
}).trigger('change');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="Objective" form="theForm" name="category" >
<option value="pi">Pipi</option>
<option value="theta">thethaatha</option>
<option value="sigma">sigmama</option>
</select>
<div>
<input type="checkbox" class="dissable" onclick="check();" value="1" /> Teas<br>
<input type="checkbox" class="dissable" onclick="check();" value="1" /> Capri<br>
<input type="checkbox" class="dissable" onclick="check();" value="2" /> Kids <br>
<input type="checkbox" class="dissable" onclick="check();" value="2" /> Food <br>
</div>
相关文章:
- 选择框已禁用或由其他选择框的某个选项启用
- 如何在tinymce编辑器中启用字体系列和颜色选项
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 如何启用Emmet'的选项卡键处理程序(HTML快捷方式)
- 根据输入框上的写入动态启用/禁用选择选项
- Jquery Resize问题.如果宽度小于768宽度,请启用“单击选项”.768以上鼠标悬停选项启用
- 如何启用禁用的选择选项
- 如何使用复选框启用选项并通过本地存储进行保存
- 根据选择选项启用/禁用其他输入
- Javascript函数在活动选项卡上启用链接
- 在选择元素中选择第一个启用的选项
- 使用语义 UI 选项卡启用的多个路由的文档就绪函数应该去哪里
- IE中“启用本机XMLHTTP支持”选项的目的是什么?
- Jquery ui 如何选择那些启用的选项卡
- 角度 HTML 选择选项禁用和启用
- 从单个下拉菜单启用选项卡
- 如何禁用和启用选项卡加载使用功能
- 使用jQuery选项卡启用选项卡
- 如何在选择复选框时启用选项卡
- 如何在单击单选按钮时启用选项卡