【发布时间】:2011-02-22 12:53:08
【问题描述】:
我有一个 ASP MVC Web 应用程序,其中一个页面上有一组主复选框,下面有子复选框。子复选框应仅在选中相应的主复选框时显示。只要页面加载时没有选中任何复选框,我的以下代码就可以正常工作。
$("input[id$=Suffix]").change(function() {
prefix = this.id;
if (!$(this).hasClass("checked")) {
$("tr[id^=" + prefix + "]").show();
$(this).addClass("checked");
}
else {
$("tr[id^=" + prefix + "]").hide();
$(this).removeClass("checked");
}
});
现在我需要检查数据库中主要复选框的值。我得到了这些值,并且可以选中页面加载时的复选框。但是当页面出现时,当主复选框被选中时,子复选框不显示。
另外,如果页面加载时主checkbox被选中,子checkbox只有在主chcekbox未选中时才会显示(显然是因为上面的函数只作用于.change())。
你们都建议我尝试什么?如果您需要进一步的解释,请随时询问。
编辑:顺便说一句,所有这些都在 $(document).ready() 中
【问题讨论】:
-
您如何从数据库中获取选中的值并设置主要复选框? AJAX 调用和 dom?还是 asp 脚本?
-
我只是使用模型(LINQ to SQL)检查数据库,然后从我的控制器设置 ViewData。
-
既然你有关于“父”复选框是否在服务器端被选中的信息(在渲染时),为什么不在适当的地方渲染“子复选框”(可见或hidden) 状态而不是尝试在客户端触发它们?
-
嘿 R0MAN,你会怎么做?
标签: jquery asp.net-mvc checkbox