Asp.net 如果客户端验证失败,如何隐藏div(在客户端上)?

Asp.net 如果客户端验证失败,如何隐藏div(在客户端上)?,asp.net,validation,Asp.net,Validation,我正在使用asp.net验证控件创建asp.net页面。如果验证失败,我想显示一个div(在客户端上)。我在哪里做这个?我找不到访问客户端上OnValidate事件的方法。我可以在服务器上执行此操作,但我更愿意在客户端执行。您可以使用Page.RegisterClientScriptBlock方法从服务器端代码调用javascript函数] 像 或者,如果您指定div属性runat=“server”,则可以从服务器端代码访问div,并将其显示更改为block divId.Style["displ

我正在使用asp.net验证控件创建asp.net页面。如果验证失败,我想显示一个div(在客户端上)。我在哪里做这个?我找不到访问客户端上OnValidate事件的方法。我可以在服务器上执行此操作,但我更愿意在客户端执行。

您可以使用Page.RegisterClientScriptBlock方法从服务器端代码调用javascript函数]

或者,如果您指定div属性runat=“server”,则可以从服务器端代码访问div,并将其显示更改为block

divId.Style["display"] = "block";
使用ASP.NET


如果出于某种原因,您不能/不想这样做,请使用一种方法,并确保在验证失败时在客户端脚本中返回false。

您将希望在客户端和服务器上进行验证,因为您无法保证客户端已打开JavaScript。下面显示了在客户端实现这一点的步骤,因为在服务器端实现这一点应该很简单

给出一个简单的div,如下所示:

<div id="divErrors" runat="server" style="display: none;">
    This should only appear when validation fails.
</div>

我只想在验证失败的情况下这样做。只有在提交时才可以。然后,您可以在提交函数中编写客户端本身的javascript代码,并在最后一步返回false。问题是没有提交函数。我正在使用asp.net验证控件。
divId.Style["display"] = "block";
<div id="divErrors" runat="server" style="display: none;">
    This should only appear when validation fails.
</div>
<script language="javascript" type="text/javascript">
    function showErrors() {
        if (!Page_IsValid) {
            document.getElementById('divErrors').style.display = 'block';
        } else {
            document.getElementById('divErrors').style.display = 'none';
        }
    }
</script>
If Not Page.IsPostBack() Then
    Dim scriptName As String = "OnSubmitScript"
    Dim scriptType As Type = Me.GetType()
    Dim script As ClientScriptManager = Page.ClientScript
    If Not script.IsOnSubmitStatementRegistered(scriptType, scriptName) Then
        script.RegisterOnSubmitStatement(scriptType, _ 
                        scriptName, "showErrors();")
    End If
End If