代码之家  ›  专栏  ›  技术社区  ›  Etienne

使ASP标签在Javascript中可见?

  •  2
  • Etienne  · 技术社区  · 15 年前

    这是我想要显示的标签,如果用户在点击按钮之前遗漏了字段。我做错了什么,因为当我点击按钮时什么都没有发生。

    <asp:Label ID="lblError" runat="server" 
    Text="* Please complete all mandatory fields" style="display: none;" >
    </asp:Label>
    

    function valSubmit(){
        varName = document.form1.txtName.value;
        varSurname = document.form1.txtSurname.value;
    
        if (varName == "" || varSurname == "") 
        {
         document.getElementById('lblError').style.display = 'inherit'; 
    
        }
        else
        { 
    
         .................other code go here...........................
        return true; 
        } 
    

    }

    4 回复  |  直到 13 年前
        1
  •  4
  •   Mike Kingscott    15 年前

    为什么不使用验证控件?这将给你的客户端和服务器端验证开箱即用-不是说我懒惰或任何。。。;-)

    编辑以供评论:

    RequiredFieldValidator可以设置为在每个控件旁边显示一个红色星号,并且可以使用验证摘要控件,但这会占用空间。

    所以,有可能ASP.Net正在重命名控件,因此您的JS应为:

    document.getElementById('<%= lblError.ClientID %>').style.display = 'inherit';
    

    试一试。。。

    就个人而言,我仍然会使用验证器控件;-)

        2
  •  1
  •   Bill the Lizard    13 年前

    你不应该用 lblError 作为JavaScript代码中的ID。相反,您应该使用:

    '<%= lblError.ClientID %>'
    

    当然,只有在ASP.NET文件。

        3
  •  0
  •   user240141 user240141    15 年前

    在你想要的活动中使用这个

    document.getElementById('<%= lblError.ClientID %>').style.display = ""; or
    document.getElementById('<%= lblError.ClientID %>').style.display = "block"
    

    好吧,那就试试这个,而不是客户端,把它变成服务器端。首先将其设置为不可见,就像在formload事件中使用lblEror.可见和删除样式=“显示:无“从html。 然后在所需事件上使其可见,并在处理后再次使其不可见。

    如果你真的想要的话js.尝试这个解决办法。从asp标签中删除样式。在body onload时,让它从某个js函数中禁用。现在在btn click事件中,使用如下方法使其可见

        function Validate()
        {
             var objLbl = $get('<%=lblError.ClientID%>');
             if (validations fails)
             {
                 objLbl.style.display = ""; //displays label
                 return false;
             }
             else
             {
                 objLbl.style.display="none" //hides label
                 return true;
             }
        }
    <asp:button id="btnValidate" runat="server" onclientclick="return validate();"/>
    

    希望这能奏效

        4
  •  -1
  •   maxp    15 年前

    看看jquery,您可以选择按类,而不是id,当呈现到页面上时,id永远不会改变(与id不同)