从ASP.net Control中删除onblur验证

时间:2011-07-08 08:51:29

标签: .net asp.net validation

我想要删除asp.net验证的onblur事件,并且仅在单击按钮时调用验证。有谁知道如何实现这一目标?

由于

3 个答案:

答案 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中。如果有的话。

我认为仍然会执行验证,但是您没有看到结果。那是你的意思吗?