使用Jquery的多条件复选框过滤器
Checkbox Filter with Multiple Condition using Jquery
<div id="c_b" class="checkbox-elemet">
<div class="checkbox">
<input type="checkbox" value="nri" id="nri" name="status[]"><label for="nri">NRI</label></div>
<div class="checkbox"><input type="checkbox" id="resident" value="resident" name="status[]"><label for="resident">Resident</label></div>
<div class="checkbox"><input type="checkbox" disabled="true" id="salaried" value="salaried" name="status[]"><label for="salaried">Salaried</label></div>
<div class="checkbox"><input type="checkbox" disabled="true" id="self_employed" value="self_employed" name="status[]"><label for="self_employed">Self</label></div>
<div class="checkbox"><input type="checkbox" disabled="true" id="govt_employee" value="govt_employee" name="status[]"><label for="govt_employee">Govt.</label></div>
<div class="checkbox"><input type="checkbox" disabled="true" id="others" value="others" name="status[]"><label for="others">Others</label></div>
</div>
要启用每个复选框,应满足以下条件:
- NRI,Resident应该启用最初,所有其他都是禁用的
- NRI检查:仅受薪和别人使
- NRI和受薪检查:没有其他使 居民检查:工薪阶层,政府,其他,自我应该使
- 居民和受薪检查:启用
- 常驻自检:无其他使
任何人都可以帮我想出一个简单的解决办法。
你的代码可以是像这样:
$(document).ready(function(){
//1. NRI,Resident should enable initially, all other are disabled
disableAll(); $("#nri", "#resident").attr("disabled", false);
//Req 2
$("#c_b :checkbox").change(function(){
//2. NRI checked : Only Salaried and Others enable
if(isChecked("#nri")){ disableAll(); enable("#salaried, #others"); }
//3. NRI and Salaried checked : No other Enable
if(isChecked("#nri") && isChecked("#salaried")){ disableAll(); enable("#nri, #salaried"); }
//4. Resident checked : All child should enable
//what is child?
//5. Resident and Salaried checked : Govt. and Other enable
if(isChecked("#resident") && isChecked("#salaried")){ enable("#govt_employee, #others"); }
// 6. Resident and Self checked : No other Enable
if(isChecked("#resident") && isChecked("#self_employed")){ disableAll(); enable("#resident, #self_employed"); }
});
});
function disableAll(){
$("#c_b :checkbox").attr("disabled", true);
}
function isChecked(id){
return $(id).is(":checked");
}
function enable(sel){
$(sel).attr("disabled", false);
}
我不明白你的第四个要求。希望对大家有所帮助
相关文章:
- 角度嵌套过滤器依据复选框
- AngularJS过滤器使用ng个重复复选框显示所有页面加载
- 在同位素.js中加入多个复选框过滤器
- PHP-AJAX复选框过滤器使用数据标记属性
- 如何在 emberjs 中使用复选框实现多个过滤器
- Angular/Ionic/Javascript:无法让下拉过滤器作为复选框工作
- 带有群集和过滤器复选框的地图框个性化图标
- 角度ng重复过滤器在搜索后取消选中所有复选框
- 带有复选框和滑块过滤器的jQuery同位素
- 带有复选框的 JavaScript 过滤器
- Google Maps API v3复选框/过滤器数据库
- 复选框过滤器用于显示/隐藏用多个data-*属性装饰的元素
- 构建复选框过滤器的最佳方式,以显示/隐藏基于多个data-*属性的元素
- 复选框过滤器在AngularJS中不能正常工作
- Jquery复选框过滤器
- JS复选框过滤器与多个类别
- 如何使用angularjs为ng重复列表创建复选框过滤器
- 使用Jquery的多条件复选框过滤器
- 如何使我的复选框过滤器工作
- AngularJS的复选框过滤器