使用Display="None"
FieldValidator 控件上的属性和ValidationSummary
标签来包含消息。
<form id="form1" runat="server">
<asp:TextBox runat="server" ID="TextBox1" /> <br />
<asp:TextBox runat="server" ID="TextBox2" /> <br />
<asp:Button runat="server" Text="Go" />
<div class="messages">
<asp:ValidationSummary id="summery1" runat="server"/>
</div>
<div>
<asp:Panel ID="Panel1" runat="server" >
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ErrorMessage="Required Field Validator1 empty" ControlToValidate="TextBox1" Display="None" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ErrorMessage="Required Field Validator2 empty" ControlToValidate="TextBox2" Display="None" />
</asp:Panel>
</div>
</form>
但是......(总是有一个问题)......使用这种方法,验证消息本身仅存储在 JavaScript 中。这意味着如果禁用 Javascript,它将无法工作。我假设这不是一个大问题,因为您正在使用 WebForms(依赖于 JS),但我认为这值得一提。
并且为了记录,可访问性问题主要是胡扯。我以为我知道可访问性,直到我真正与视障程序员(100% 失明)一起工作。然后,我了解到 JS 工作得很好(假设他们知道要寻找新内容......)并且他们只是从一个链接到另一个链接跳过页面,直到他们找到他们想要的。并且基于表格的布局并没有减慢 1 秒钟的速度。在对 CSS 进行了几年令人难以忍受的宣讲之后,这真是一颗难以下咽的药丸……