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

前端之家收集整理的这篇文章主要介绍了如何运行ASP.Net页面的客户端验证?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试运行客户端验证.我把一个非常简单的测试放在一起 – 文件名是aTET3.aspx:
  1. <%@ Page Language="C#" AutoEventWireup="true"
  2. CodeFile="aTET3.aspx.cs" Inherits="aTET3" %>
  3.  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5.  
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head runat="server">
  8. <title>TEST</title>
  9.  
  10. <script type="text/javascript">
  11. //<![CDATA[
  12. function TEST()
  13. {
  14. alert("INSIDE TEST");
  15. alert("ValidatorCommonOnSubmit()=" + ValidatorCommonOnSubmit());
  16. alert("Page_ClientValidate()=" + Page_ClientValidate());
  17. }
  18. //]]>
  19. </script>
  20. </head>
  21.  
  22. <body link="#1A548E" vlink="#1A548E" alink="#1A548E" onunload="TEST()">
  23.  
  24. <form name="appForm" method="post" action="aTET3.aspx" id="appForm" runat="server">
  25. <asp:ValidationSummary id="appValidationSummary"
  26. ValidationGroup="appValidation"
  27. DisplayMode="List"
  28. EnableClientScript="true"
  29. HeaderText="Loan application not ready"
  30. runat="server"
  31. Enabled="true"
  32. Visible="true"
  33. ShowSummary="true" />
  34. <asp:Label ID="lblMessage" Font-Bold="true" ForeColor="Red" runat="server" />
  35.  
  36. <br />
  37. Enter amount:
  38.  
  39. <asp:requiredFieldValidator ID="ApplicationAmountValidator"
  40. ValidationGroup="appValidation"
  41. ControlToValidate="txtApplicationAmount"
  42. ErrorMessage="Application amount is required."
  43. EnableClientScript="true"
  44. Enable="true"
  45. Display="Dynamic"
  46. runat="server">+++</asp:requiredFieldValidator>
  47.  
  48. <asp:TextBox ID="txtApplicationAmount" Columns="6" runat="server" />
  49.  
  50. <br /><br />
  51.  
  52. <asp:Button ID="btnSave" runat="server" Text="Send Application"
  53. CausesValidation="true" />
  54.  
  55. </form>
  56.  
  57.  
  58. </body>
  59. </html>

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

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

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

  1. <script type="text/javascript">
  2. <!--
  3. var Page_ValidationActive = false;
  4. if (typeof(ValidatorOnLoad) == "function") {
  5. ValidatorOnLoad();
  6. }
  7.  
  8. function ValidatorOnSubmit() {
  9. if (Page_ValidationActive) {
  10. return ValidatorCommonOnSubmit();
  11. }
  12. else {
  13. return true;
  14. }
  15. }
  16. // -->
  17. </script>

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

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

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

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

解决方法

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

猜你在找的asp.Net相关文章