开发者

Client-side validation breaks in IE because of PropertyProxyValidator and ScriptManager cooperation

开发者 https://www.devze.com 2022-12-08 23:38 出处:网络
The specific of the project is in using Enterpise Library for Server side validation and jQuery for client-side validation. So I have the next simple form for example:

The specific of the project is in using Enterpise Library for Server side validation and jQuery for client-side validation. So I have the next simple form for example:

<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" />                        

   开发者_Python百科 <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>

The problem is in the next: client-side validation worked correctly before I needed to implement some AJAX.NET feature. So I have to add to the page ScriptManager (the last two lines in the code). But after that the next situation appeared:

In InternetExplorer((7) - only in IE !!! - in Firefox everything works correctly) after clicking save button, if left the textbox ProjectName empty the client-side jquery validation appears but (!) the page submits to the server anyway.

Some notes:

  1. If delete PropertyProxyValidator from the page - the client-side validation works correctly in IE but I need it for specific of the project.
  2. It seems that the problem is in the function WebForm_OnSubmit() that is inserted to the form after PropertyProxyValidator adding. ( ... <form name="aspnetForm" method="post" action="Project.aspx?TransType=NewProject" onsubmit="javascript:return WebForm_OnSubmit();" ...>)

Could anyone help, please.


Just in case someone else comes across this issue, upgrade jQuery to 1.4.2. This will fix this bug.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号