我有一些复选框,通过在数据库中执行表示餐馆表格的选择来显示。那些已经保留的表我添加了一个禁用的属性。我的脚本的问题是我只想选择最多三个表,这意味着我需要将禁用的属性添加到另一个以阻止它们。当我想取消选择那些已经选择的3时我需要删除已禁用的属性。问题是它从所有表中删除了属性,即使是那些从数据库中保留和选择的属性。
这是我的剧本:
JSFIDDLE HERE
<script type="text/javascript">
var $checks = $(".table").change(function () {
if ($checks.filter(":checked").length<3)
{
$(".formular").toggle($checks.filter(":checked").length>0);
$checks.not(":checked").removeAttr("disabled");
}
else
{
$checks.not(":checked").attr("disabled", "disabled");
}
});
</script>
答案 0 :(得分:0)
在开始时和js绑定更改事件中禁用的输入中添加了一个类.ignore
仅限于没有@lolka_bolka提到的ignore类的复选框
<强> HTML 强>
<input type="checkbox" class="bowling ignore" disabled/>
<input type="checkbox" class="bowling ignore" disabled/>
<input type="checkbox" class="bowling"/>
<input type="checkbox" class="bowling"/>
<强> JS 强>
var $checks = $(".bowling:not(.ignore)").change(function () {
if ($checks.filter(":checked").length < 3) {
$(".formular").toggle($checks.filter(":checked").length > 0);
$checks.not(":checked").removeAttr("disabled");
} else {
$checks.not(":checked").attr("disabled", "disabled");
}
});
:not(foo){}将匹配任何不是foo的东西,包括html和 身体。 Source