razor,jquery:选中复选框时,取消选中其他一些复选框,但取消选中该页面上的所有复选框

  • 本文关键字:复选框 取消 其他 jquery razor jquery razor
  • 更新时间 :
  • 英文 :


我的页面上有几个复选框。一个是静态渲染的,而另一个是从模型中渲染的:

<table>
<tr>
<td>
@Html.CheckBoxFor(m => m.AllLangsChecked, new { onchange = "checkedChanged" })
<script>
$('input:checkbox').change(function () {
$('input:checkbox').not(this).prop('checked', false);
})
</script>
<label>Alle Sprachen</label>
</td>
</tr>
@for (int i = 0; i < Model.checkLangs.Count; i++)
{
<tr>
<td>
@Html.HiddenFor(m => m.checkLangs[i].Name)
@Html.HiddenFor(m => m.checkLangs[i].LanguageId)
@Html.CheckBoxFor(m => m.checkLangs[i].isChecked)
<label>@Model.checkLangs[i].Name</label>
</td>
</tr>
}
</table>

现在你可以看到我的标签了。它的工作基本上是在选中顶部复选框时取消选中所有动态复选框。

这确实很好用。但是,脚本也会取消选中该页面上的所有复选框。(还有一些(。

但我只希望循环中的那些被禁用。

你会怎么说?

谢谢!

我想我对剃刀语法不太熟悉
但我对jquery问题有一些想法
你的jquery选择器适用于页面上的所有input:checkbox
所以你应该为你需要的复选框添加更多的选择器
试着将类添加到你的table标签
并将该类添加到jquery复选框选择器查询
类似的东西

<table class="some-class">
<tr>
<td>
@Html.CheckBoxFor(m => m.AllLangsChecked, new { onchange = "checkedChanged" })
<script>
$('.some-class input:checkbox').change(function () {
$('.some-class input:checkbox').not(this).prop('checked', false);
})
</script>
<label>Alle Sprachen</label>
</td>
</tr>
@for (int i = 0; i < Model.checkLangs.Count; i++)
{
<tr>
<td>
@Html.HiddenFor(m => m.checkLangs[i].Name)
@Html.HiddenFor(m => m.checkLangs[i].LanguageId)
@Html.CheckBoxFor(m => m.checkLangs[i].isChecked)
<label>@Model.checkLangs[i].Name</label>
</td>
</tr>
}
</table>

这个jquery选择器只适用于表中的复选框

最新更新