我想要删除asp.net验证的onblur事件,并且仅在单击按钮时调用验证。有谁知道如何实现这一目标?
由于
答案 0 :(得分:1)
您可以从给定元素中删除验证事件
<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)。
另请注意,这确实是一个非常丑陋的黑客(正如下面的评论所指出的那样),你应该自担风险。
答案 1 :(得分:0)
您必须将ValidationGroup属性提供给按钮,该按钮是单击,文本框和验证控件。所有人都有相同的分组名称。
然后,您必须通过右键单击它来取消设置控件的onblur事件,选择属性,然后通过单击属性窗口顶部的flash按钮进入事件部分。然后找到onblur事件并从其值单元格中删除调用事件。
答案 2 :(得分:0)
实际上,这是一个内置功能,您可以通过在验证器上设置“显示”属性来启用它:
<asp:RequiredFieldValidator runat="server" ID="val" Text="Please enter text" ErrorMessage="No text" ControlToValidate="txtText" Display="None" EnableClientScript="true" />
现在,在提交验证期间,只有“没有文本”信息才会显示在SummaryValidator中。如果有的话。
我认为仍然会执行验证,但是您没有看到结果。那是你的意思吗?