0

我喜欢根据标签的可见性在标签上添加验证,因为如果标签不可见,提交按钮将引发验证消息或错误。

我习惯了工具箱中的验证控件,它不允许这个功能!

4

1 回答 1

0

似乎 asp:Label 的可见性设置为 false,asp.net 引擎甚至不会将其放入 DOM。所以你可以签入 javascript,使用onclick(html) 按钮的属性来检查标签是否在 DOM 中,并使用 asp.net 的__doPostBack()javascript 函数将其回传到服务器(如果存在):

      <script type="text/javascript">
        function testMe()
        {
          var lbl = document.getElementById('lblTest');
          if(lbl == null)
            document.getElementById('msg').innerHTML = "Error";
          else
            __doPostBack('testButton');
        }
      </script>
      <asp:Label ID="lblTest" runat="server" Visible="false" Text="Hello"></asp:Label>
      <button onclick="testMe();">test</button>

老实说,我认为如果标签不存在于 DOM 中会是这样,但 Firebug 透露它实际上lbl是. 无论如何,需要注意的一点是,为了让 asp.net 定义该方法,我相信您需要在表单中进行一些控制,并且在代码隐藏中您可以检查导致回发的原因,如下所示:undefinednull__doPostBack()autopostback="true"Page_Load

if(Request.Form["__EVENTTARGET"] == "testButton") {}
于 2012-07-27T23:36:58.620 回答