如何在jquery中将visible设置为true

Jin*_*ong 17 jquery

我使用以下代码隐藏下拉框:

  <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>   
Run Code Online (Sandbox Code Playgroud)

不知何故,我尝试使用以下代码显示此下拉列表,但这对我不起作用.谁知道为什么?

$("#test1").show();
Run Code Online (Sandbox Code Playgroud)

Joh*_*hnP 49

取决于你如何隐藏它.

如果你使用CSS visibility值那么

$('#test1').css('visibility', 'visible');
Run Code Online (Sandbox Code Playgroud)

如果你使用CSS`display'

$('#test1').css('display', 'block'); //or inline or any of the other combos
Run Code Online (Sandbox Code Playgroud)

你甚至可能使它的opacity = 0

$('#test1').css('opacity', '1');
Run Code Online (Sandbox Code Playgroud)


OJ.*_*OJ. 17

使用ASP.NET的visible="false"属性将设置visibility属性,因为我认为show()在jQuery中调用它时会修改displayCSS样式的属性.

所以做后者不会纠正前者.

你需要这样做:

$("#test1").attr("visibility", "visible");
Run Code Online (Sandbox Code Playgroud)

  • @Jin Youn,为什么选择这个作为答案?你试过吗?它不起作用,正确的答案是JohnP的回答. (8认同)
  • 为什么这个答案被接受,你不能在浏览器中修改asp'可见'属性,因为它在服务器上设置.请不要接受这样的答案,误导新用户. (2认同)

mel*_*aos 5

取决于,如果我没记错的话,我认为当你将visible设置为false时,asp.net不会渲染html对象.

如果您希望能够从客户端控制它,那么最好只包括css值以将其设置为不可见而不是使用visible = false.