我在ASP.NET MVC View页面中使用了foreach
循环。对于foreach
操作的集合的每个元素,我创建两行 - 一行用于显示,一行用于编辑。我想隐藏编辑行,以后只能根据用户操作显示它。
如果我用display: none
隐藏编辑行,那么jQuery的show()
方法无法再次重新显示它 - 它不起作用。如果我像这样隐藏它
// I put this inside the foreach loop
<script type="text/javascript">
$("#edititem_" + <%: item.Id %>).hide();
</script>
jQuery的show()
函数可以稍后显示,但页面不会验证,因为它位于<tbody>
标记内(这是我枚举我的集合并创建<tr>
的)
我希望能够按需显示/隐藏编辑行,并且仍然有一个XHTML有效页面。
我怎样才能做到这一点?
答案 0 :(得分:1)
要获得优雅的降级,你可以坚持通过jQuery完成隐藏,只需将编辑<tr>
行赋予一个类,例如<tr class="edit">
然后使用jQuery在表外隐藏所有这些,如下所示:
<script type="text/javascript">
$(function() {
$("tr.edit").hide();
});
</script>
这种方法,而不是使用CSS隐藏它们对于那些禁用JS的人来说更加友好,如果你可能有这样的用户,请采用这种.hide()
方法。
答案 1 :(得分:0)
使用CSS文件并将Class
添加到编辑行,将另一个类添加到显示行。
如果你写
.editRows {
display:none;
}
在CSS文件中,jquery的.show()
可以正常工作。
或者你可以做到
$(".editRows").hide();