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