Сбои проверки на стороне клиента в IE из-за сотрудничества PropertyProxyValidator и ScriptManager - PullRequest
0 голосов
/ 22 октября 2009

Специфика проекта заключается в использовании библиотеки Enterpise для проверки на стороне сервера и 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. Кажется, что проблема в функции WebForm_OnSubmit (), которая вставляется в форму после добавления PropertyProxyValidator. (... <form name="aspnetForm" method="post" action="Project.aspx?TransType=NewProject" onsubmit="javascript:return WebForm_OnSubmit();" ...>)

Может кто-нибудь помочь, пожалуйста.

1 Ответ

0 голосов
/ 20 мая 2010

На случай, если кто-то еще столкнется с этой проблемой, обновите jQuery до 1.4.2. Это исправит эту ошибку.

...