我使用以下代码隐藏下拉框:
<asp:DropDownList ID="test1" runat="server" DataSourceID="dsTestType" CssClass="maptest1" visible="false"
DataValueField="test_code" DataTextField="test_desc" AppendDataBoundItems="true" >
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
不知何故,我尝试使用以下代码显示此下拉列表,但这对我不起作用。谁知道为什么?
$("#test1").show();
答案 0 :(得分:49)
取决于你如何隐藏它。
如果您使用了CSS visibility
值,那么
$('#test1').css('visibility', 'visible');
如果您使用CSS`display'
$('#test1').css('display', 'block'); //or inline or any of the other combos
您甚至可能已将其设为opacity = 0
$('#test1').css('opacity', '1');
答案 1 :(得分:16)
使用ASP.NET的visible="false"
属性将设置visibility
属性,我认为当你在jQuery中调用show()
时,它会修改CSS样式的display
属性。
所以做后者不会纠正前者。
你需要这样做:
$("#test1").attr("visibility", "visible");
答案 2 :(得分:5)
取决于,如果我没记错的话,我认为当你将visible设置为false时,asp.net不会渲染html对象。
如果您希望能够从客户端控制它,那么最好只包括css值以将其设置为不可见而不是使用visible = false。
答案 3 :(得分:3)
删除visible =“false”属性并添加默认情况下不可见的CSS类。 然后,您应该能够通过正确的ID引用下拉列表,例如:
$("#ctl00_cphTest_test1").show();
以上ID,您应该在浏览器中的已渲染页面的源代码中搜索。
答案 4 :(得分:2)
你是如何让它隐形的?尝试不同的方法。使用
$("#test1").css('display','none');
如果要隐藏该元素,请使用
$("#test1").css('display','block');
当你想表现出来时。
或者只是将这些样式移到一个类中并添加/删除类。
答案 5 :(得分:1)
在下拉列表标记中使用style="display:none"
,在jquery中使用以下内容显示和隐藏。
$("#yourdropdownid").css('display', 'inline');
OR
$("#yourdropdownid").css('display', 'none');
答案 6 :(得分:0)
我会小心设置要阻止的元素的display
。不同的元素将标准显示为不同的东西。例如,设置显示以阻止firefox中的表行会导致单元格的宽度不正确。
元素的名称实际上是test1。我知道.NET可以在开始或结束时添加额外的东西。找出你的选择器是否正常工作的最佳方法是这样做。
alert($('#text1').length);
您可能只需要删除可见性属性
$('#text1').removeAttr('visibility');
答案 7 :(得分:0)
问题是,由于您使用的是具有runat
属性的ASP.NET控件,因此控件的ID实际上不是“test1”。它是“test1”,附有长字符串。