【发布时间】:2011-07-08 08:51:29
【问题描述】:
我想删除 asp.net 验证的 onblur 事件,并且仅在单击按钮时调用验证。有谁知道如何做到这一点?
谢谢
【问题讨论】:
标签: .net asp.net validation
我想删除 asp.net 验证的 onblur 事件,并且仅在单击按钮时调用验证。有谁知道如何做到这一点?
谢谢
【问题讨论】:
标签: .net asp.net validation
您可以从给定元素中删除验证事件
<body onload="removeValidationEvents();">
和脚本:
<script type="text/javascript">
function removeValidationEvents() {
document.getElementById('<%=yourTextbox.ClientID%>').onkeypress = null;
document.getElementById('<%=yourTextbox.ClientID%>').onblur = null;
document.getElementById('<%=yourTextbox.ClientID%>').onchange = null;
}
</script>
请注意,ASP.NET 根据您要验证的控件使用不同的事件(例如,您可能需要将 onclick 添加到上面的列表中)。
另请注意,这确实是一个非常丑陋的 hack(如下面的 cmets 所示),您应该自担风险使用它。
【讨论】:
您必须为按钮提供 ValidationGroup 属性,该按钮是单击、文本框和验证控件。所有人的名字都一样。
然后您必须通过右键单击控件来取消设置 onblur 事件,选择属性,然后通过单击属性窗口顶部的 flash 按钮进入事件部分。然后找到 onblur 事件并从其值单元格中删除调用事件。
【讨论】:
事实上,这是一个内置功能,您可以通过在验证器上设置“显示”属性来启用它:
<asp:RequiredFieldValidator runat="server" ID="val" Text="Please enter text" ErrorMessage="No text" ControlToValidate="txtText" Display="None" EnableClientScript="true" />
现在,在提交验证期间,只有“无文本”信息才会显示在 SummaryValidator 中(如果有的话)。
我假设仍在执行验证,但是您看不到结果。你是这个意思吗?
【讨论】: