2009-10-22 3 views
0

프로젝트의 특정 사항은 서버 측 유효성 검사를 위해 Enterpise 라이브러리를 사용하고 클라이언트 측 유효성 검사를 위해 jQuery를 사용합니다.PropertyProxyValidator 및 ScriptManager 협력으로 인해 클라이언트 측 유효성 검사가 중단됩니다.

<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 (Internet Explorer에서만! - 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();" ...>)

아무쪼록 부탁드립니다.

+0

VisualStudio 2008, ASP.NET 3.5 –

+0

해결책을 아는 사람이 있습니까? –

답변

0

다른 사람이이 문제를 해결할 경우를 대비하여 jQuery를 1.4.2로 업그레이드하십시오. 이 버그가 수정됩니다.