在我的 MVC3 razor 页面上处理用于过滤复选框的 jQuery 显示隐藏框。
我有一个页面,该页面会根据这些复选框是否被选中而改变,但如果有任何复选框未被选中,我希望它们保持打开状态。
目前显示/隐藏有效,但是如何根据是否选中任何复选框来确定页面是否加载显示/隐藏?
我可以返回一个布尔值来说明是否有任何未选中,并且真的在寻找一个 jQuery 天才来帮助我用最好/最整洁的方法来实现这一点。
这是其中一个过滤器的示例,其中 modeFilterList 是每个复选框的通用列表,包含名称、ID 和检查状态:
<div id="filterwrap">
<h2 class="filter">Filter your results</h2>
@using (Html.BeginForm())
{
<ul id="filter">
<li>
<h2>
<a href="#">Modes</a></h2>
<div class="filtercontent">
@foreach (var item in modeFilterList)
{
<div class="radiorow">
@Html.CheckBox("mode_" + item.ID, item.Checked)
@item.Name
</div>
}
</div>
<!-- end of filtercontent -->
</li>
</ul>
}
</div>
这是用于显示和隐藏的 jquery 代码:
$('#filterwrap li h2').live('click', function (e) {
$(this).next('div.filtercontent').slideToggle() ;
e.preventDefault(); //stops page jumping to top
});
我想过在页面重新加载时可以读取的 h2 下方包含一个包含真/假值的隐藏字段,但是必须有更好的方法来使用 jQuery 来做到这一点!