加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何运行ASP.Net页面的客户端验证?

发布时间:2020-12-15 22:27:21 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试运行客户端验证.我把一个非常简单的测试放在一起 – 文件名是aTET3.aspx: %@ Page Language="C#" AutoEventWireup="true" CodeFile="aTET3.aspx.cs" Inherits="aTET3" %!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w
我正在尝试运行客户端验证.我把一个非常简单的测试放在一起 – 文件名是aTET3.aspx:
<%@ Page Language="C#" AutoEventWireup="true" 
    CodeFile="aTET3.aspx.cs" Inherits="aTET3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>TEST</title>

    <script type="text/javascript">
    //<![CDATA[
    function TEST() 
    {
        alert("INSIDE TEST");
        alert("ValidatorCommonOnSubmit()=" + ValidatorCommonOnSubmit());
        alert("Page_ClientValidate()=" + Page_ClientValidate());
    }
    //]]>
    </script>
</head>

<body link="#1A548E" vlink="#1A548E" alink="#1A548E" onunload="TEST()">

<form name="appForm" method="post" action="aTET3.aspx" id="appForm" runat="server">
<asp:ValidationSummary id="appValidationSummary" 
    ValidationGroup="appValidation" 
    DisplayMode="List"
    EnableClientScript="true"
    HeaderText="Loan application not ready"
    runat="server"
    Enabled="true"
    Visible="true" 
    ShowSummary="true" />
<asp:Label ID="lblMessage" Font-Bold="true" ForeColor="Red" runat="server" />

<br />
Enter amount:

<asp:RequiredFieldValidator ID="ApplicationAmountValidator" 
    ValidationGroup="appValidation" 
    ControlToValidate="txtApplicationAmount"
    ErrorMessage="Application amount is required." 
    EnableClientScript="true" 
    Enable="true"
    Display="Dynamic"
    runat="server">+++</asp:RequiredFieldValidator>

<asp:TextBox ID="txtApplicationAmount" Columns="6" runat="server" />

<br /><br />

<asp:Button ID="btnSave" runat="server" Text="Send Application" 
     CausesValidation="true" />

</form>


</body>
</html>

该页面有一个带有RequiredFieldValidator的文本框.还有一个ValidationSummary控件和一个提交按钮. (我添加了在Unload上调用的TEST()方法,以便在回调之前检查页面的状态.)不会发生客户端验证;相反,请求被发送回服务器.如果我在服务器上调用Validate(),那么我会得到验证.

我尝试将ValidateRequest =“true”添加到Page指令,结果相同.

当我查看发出的Javascript时,有一些事情会向我发出.这是它的一部分:

<script type="text/javascript">
<!--
var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
    ValidatorOnLoad();
}

function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else {
        return true;
    }
}
// -->
</script>

请注意,Page_ValidationActive设置为False,这意味着ValidatorOnSubmit始终返回true.这对我来说似乎很奇怪,除了我查看’WebUIValidation.js’,并看到ValidatorCommonOnSubmit无论如何都不验证页面 – Page_ClientValidate()方法,但我如何让它运行?

在我的TEST()方法中,当我手动调用Page_ClientValidate()时,表单确实按预期验证了客户端 – 并且回发请求被发送回服务器.

我已经使用FireFox 3.0.10和MSIE 7进行了测试,结果相同.

我希望我错过了一些非常基本的东西,我最终会觉得非常愚蠢 – 任何人都可以指出它吗?

解决方法

您必须在同一验证组中拥有所有验证内容.包括触发验证的按钮.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读