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

Posted by Eugene on Stack Overflow See other posts from Stack Overflow or by Eugene
Published on 2009-10-22T12:18:29Z Indexed on 2010/05/20 9:00 UTC
Read the original article Hit count: 270

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

    <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.

© Stack Overflow or respective owner

Related posts about client-side

Related posts about validation