프로젝트의 특정 사항은 서버 측 유효성 검사를 위해 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 유효성 검사가 나타납니다. 하지만 (!) 페이지는 어쨌든 서버에 제출됩니다.
일부 노트 :
- 하면 페이지에서 삭제 PropertyProxyValidator - 클라이언트 측 유효성 검사가 IE에서 제대로 작동하지만 프로젝트의 특정을 위해 필요합니다.
- PropertyProxyValidator 추가 후 양식에 삽입되는 WebForm_OnSubmit() 함수에 문제가있는 것으로 보입니다. (...
<form name="aspnetForm" method="post" action="Project.aspx?TransType=NewProject" onsubmit="javascript:return WebForm_OnSubmit();" ...>
)
아무쪼록 부탁드립니다.
VisualStudio 2008, ASP.NET 3.5 –
해결책을 아는 사람이 있습니까? –