如何运行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://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进行了测试,结果相同. 我希望我错过了一些非常基本的东西,我最终会觉得非常愚蠢 – 任何人都可以指出它吗? 解决方法
您必须在同一验证组中拥有所有验证内容.包括触发验证的按钮.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.Net RSS提要
- Asp.NET cookies返回null
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automap
- asp.net – 我使用什么Active Directory字段来唯一标识用户
- asp.net – 以编程方式将Textbox TemplateField列添加到Gri
- 将ASP.Net Web.Config设置绑定到.ASPX文件?
- asp.net – 如何保护我的通用处理程序调用?
- asp.net-mvc – 在Webgrid中将布尔值显示为复选框
- asp.net-mvc – 什么首先启动Application_Start或WebRole的
- asp.net-mvc – asp.net mvc – 子文件夹
- asp.net-mvc – 传统的ASP.NET Web窗体与MVC
- asp.net-mvc – 使用URL重写时Url.Action不正确
- asp.net – Controller.Execute呈现为没有内容类
- asp.net-mvc – 使用自定义ASP.NET MVC IValuePr
- asp.net-mvc – 使用AD的ASP.NET MVC表单Auth在本
- asp.net – 在VS2008发布网站后,全球资源无法解决
- asp.net-mvc – 在visual studio 2013中创建自定
- asp.net – AspNetCore.Mvc与AspNetCore.Mvc.Cor
- log4net 日志框架的配置
- .net4.0中的ClientIDMode