【问题标题】:JQuery .Show() doesn't work with server control?JQuery .Show() 不适用于服务器控制?
【发布时间】:2010-11-01 12:40:21
【问题描述】:

我有 2 个 html TR,我将它们设为 runat="server"visible="false",并且我有一个名为 citiesDropDownList 的下拉列表

$(document).ready(function() {
$('#<%=citiesDropDownList.ClientID %>').change(function() { ValidateCity(); });
});

在更改此下拉列表时,我检查其文本是否等于字符串,我显示 2 tr 如下

function ValidateCity() {
        if ($('#<%= citiesDropDownList.ClientID %> :selected').text() == identity_CityOther)   {
            $('#<%= otherCityTR.ClientID %>').show();
            $('#<%= areasTR.ClientID %>').show();
        }
        var city = $('#<%= citiesDropDownList.ClientID %>').val();
        return IsValid((city.length != 0), '#<%= cityDiv.ClientID %>', identity_CityRequired);
    }

.show() 根本不起作用,我没有原因.. 有什么能引导我解决问题吗?

仅供参考:我尝试了$('#&lt;%= otherCityTR.ClientID %&gt;').show('slow');$('#&lt;%= otherCityTR.ClientID %&gt;').css('visibility', 'visible');,但它也不起作用...

【问题讨论】:

  • 您在执行过程中检查过是否有任何错误?
  • 我没有错误......只是没有行动!!

标签: asp.net jquery show-hide


【解决方案1】:

visible="false" 表示它甚至不会呈现到页面中,因此您的选择器找不到任何元素。

使用style="display: none;" 代替visible="false" 隐藏元素,但仍将它们呈现在页面中。

【讨论】:

    【解决方案2】:

    如果您在服务器控件上设置visible = "false",则该控件甚至不会呈现给浏览器。改为设置display: none,然后在您的javascript中显示带有display: block的控件。

    【讨论】:

      【解决方案3】:

      从服务器控件中删除 visible=false,因为这会停止将控件呈现到页面,设置 CSS 样式,显示:无或隐藏 javascript 中所需的控件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-24
        • 2012-08-28
        • 2013-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-28
        • 1970-01-01
        相关资源
        最近更新 更多