asp.net - Asp.Net - CustomValidator 的 ErrorMessage - 仅显示在 ValidationSummary - 不在其他地方
问题描述
这是 ASPX:
<form id="form1" runat="server">
<div>
<fieldset style="width: 160px">
<legend>Select your skills</legend>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
<asp:CheckBoxList ID="cblCourses" runat="server" RepeatColumns="2">
<asp:ListItem>Asp.net</asp:ListItem>
<asp:ListItem>C#</asp:ListItem>
<asp:ListItem>VB</asp:ListItem>
<asp:ListItem>WCF</asp:ListItem>
<asp:ListItem>Jquery</asp:ListItem>
<asp:ListItem>JavaScript</asp:ListItem>
</asp:CheckBoxList>
<asp:Label ID="lblStatus" runat="server" Text=""></asp:Label>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please select at least one skills." ClientValidationFunction="validateCheckBoxList" Display="Dynamic" ForeColor="Red"></asp:CustomValidator>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" Style="height: 26px" />
</fieldset>
</div>
</form>
这是javascript:
<script type = "text/javascript">
function validateCheckBoxList(source, args) {
var chkListModules = document.getElementById('<%= cblCourses.ClientID %>');
var chkListinputs = chkListModules.getElementsByTagName("input");
for (var i = 0; i < chkListinputs.length; i++) {
if (chkListinputs[i].checked) {
args.IsValid = true;
return;
}
}
args.IsValid = false;
}
</script>
问题是当我单击btnSubmit
按钮时会出现两条错误消息。
一个在 ValidationSummary 中。按钮
旁边的另一个。
我如何告诉 CustomValidator 只在 ValidationSummary 中显示它的消息,而不是在其他地方?btnSubmit
解决方案
您可以使用 display:none 将 CustomValidator 包装在 div 或 span 中;错误仍然显示在摘要中,但没有其他地方:-
<span style="display:none;">
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please select at least one skills." ClientValidationFunction="validateCheckBoxList" Display="Dynamic" ForeColor="Red"></asp:CustomValidator>
</span>
您应该为您的 div/span 创建一个类,而不是内联样式,这只是为了证明它有效。
推荐阅读
- excel - 如果整个范围为空白,则删除整行?
- r - 在 R Markdown 中使用 dep_prev() 的示例?
- vue-router - vue 路由器。如何知道导航是点击链接还是程序化
- excel - 如何解决错误对象变量或未设置块变量?
- html - CSS 选择器步进箭头
- machine-learning - 传递图像后如何打印CNN模型每一层的输出
- c++ - 铸造 Derived** → Base** 错了吗?有什么选择?
- node.js - Vscode API:读取剪贴板文本内容
- c# - PreFlight Request 404 not found .net web api;对预检请求的响应未通过访问控制检查:它没有 http ok 状态
- c# - 单击工具条时停止显示类型光标