0

该项目的具体之处在于使用 Enterprise Library 进行服务器端验证和 jQuery 进行客户端验证。所以我有下一个简单的表格,例如:

<asp:Content ID="_mainContent" ContentPlaceHolderID="MainContent" runat="server">

    <script src="../../../Scripts/jquery-1.3.2.js" type="text/javascript"></script>
    <script src="../../../Scripts/jquery.validate.js" type="text/javascript"></script>



    <script type="text/javascript">
    $(document).ready(function() {
                    $("#aspnetForm").validate({                        
                        rules: {

                            "<%= _txtProjectName.UniqueID %>": {
                                required: true                               
                            }
                        }
                    });
                });                
    </script>    

    <asp:TextBox ID="_txtProjectName" runat="server" CssClass="textBoxWithValidator_long" />
    <entlib:PropertyProxyValidator id="_validatorProjectName" runat="server" ControlToValidate="_txtProjectName"
             PropertyName="ProjectName" SourceTypeName="LabManagement.Project.Project" />                        

    <asp:Button CssClass="cell_InlineElement" ID="_btnSave" runat="server" Text="Save" onclick="_btnSave_Click" 
                    Width="50px" />    
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">        
    </asp:ScriptManager>
</asp:Content>

问题出在下一个:在我需要实现一些 AJAX.NET 功能之前,客户端验证工作正常。所以我必须添加到页面ScriptManager(代码中的最后两行)。但之后出现了下一个情况:

在 InternetExplorer((7) - 仅在 IE 中 !!! - 在 Firefox 中一切正常)单击保存按钮后,如果将文本框 ProjectName 留空,则会出现客户端 jquery 验证,但是(!)页面无论如何都会提交给服务器。

一些注意事项:

  1. 如果从页面中删除 PropertyProxyValidator - 客户端验证在 IE 中正常工作,但我需要它用于特定的项目。
  2. 似乎问题出在添加 PropertyProxyValidator 后插入表单的函数 WebForm_OnSubmit() 中。( ... <form name="aspnetForm" method="post" action="Project.aspx?TransType=NewProject" onsubmit="javascript:return WebForm_OnSubmit();" ...>)

任何人都可以帮忙,拜托。

4

1 回答 1

0

以防万一其他人遇到此问题,请将 jQuery 升级到 1.4.2。这将修复此错误。

于 2010-05-20T08:54:28.160 回答