Erro com validators
21/07/2010
0
Postei essa dúvida em outro fórum, mas ainda não obtive resposta:
Uso asp.net 1.1 com visual studio 2003.Tenho dois servidores com windows 2003 server e iis 6.0 e a máquina de desenvolvimento com windows xp sp2
Uma página simples com um asp TextBox, um button e um requiredi field validator e um validation summary:No servidor de desenvolvimento funciona: quando eu clico no botão ele não dá submit, mas mostra o que está errado e mostra o alert com o summary. Nos servidores de produção não consegui fazer funcionar.
Esse é o código gerado pelo windows xp:
Esse funciona. O que não funciona é assim:
o que eu fiz de errado?
valew!
Uso asp.net 1.1 com visual studio 2003.Tenho dois servidores com windows 2003 server e iis 6.0 e a máquina de desenvolvimento com windows xp sp2
Uma página simples com um asp TextBox, um button e um requiredi field validator e um validation summary:No servidor de desenvolvimento funciona: quando eu clico no botão ele não dá submit, mas mostra o que está errado e mostra o alert com o summary. Nos servidores de produção não consegui fazer funcionar.
Esse é o código gerado pelo windows xp:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML> <HEAD> <title>teste</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name=vs_defaultClientScript content="JavaScript"> <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form method="post" action="teste.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="Form1"><div class="aspNetHidden"><input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTcyMzUyODc3OWRkgRhvsR5UK3vvocXrO1qomevAnDqvQLEIr9xosJzc144=" /></div> <script type="text/javascript">//<![CDATA[var theForm = document.forms['Form1'];if (!theForm) { theForm = document.Form1;}function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); }}//]]></script> <script src="/VendasPortal/WebResource.axd?d=Y9yRm5JYEUG0635f1BSfHg2&t=634109895716662567" type="text/javascript"></script> <script src="/VendasPortal/WebResource.axd?d=DmxOgWmpaO0fHDXSwAhjW05EVUsM6EimrZSGOo1mVPk1&t=634109895716662567" type="text/javascript"></script><script type="text/javascript">//<![CDATA[function WebForm_OnSubmit() {if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;return true;}//]]></script> <div class="aspNetHidden"> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwLCiPquAgLs0bLrBgKM54rGBhzafW1C+OfPIJPDNNAdnRbXCW+QuT0S6TfTUi17hdWP" /></div><input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; POSITION: absolute; TOP: 56px; LEFT: 264px" /><input type="submit" name="Button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", true, "", "", false, false))" id="Button1" style="Z-INDEX: 102; POSITION: absolute; TOP: 112px; LEFT: 264px" /><span id="RequiredFieldValidator1" style="Z-INDEX:103;POSITION:absolute;TOP:56px;LEFT:440px;visibility:hidden;">RequiredFieldValidator</span><div id="ValidationSummary1" style="Z-INDEX:104;POSITION:absolute;TOP:104px;LEFT:384px;display:none;"> </div> <script type="text/javascript">//<![CDATA[var Page_ValidationSummaries = new Array(document.getElementById("ValidationSummary1"));var Page_Validators = new Array(document.getElementById("RequiredFieldValidator1"));//]]> </script> <script type="text/javascript">//<![CDATA[var RequiredFieldValidator1 = document.all ? document.all["RequiredFieldValidator1"] : document.getElementById("RequiredFieldValidator1");RequiredFieldValidator1.controltovalidate = "TextBox1";RequiredFieldValidator1.errormessage = "RequiredFieldValidator";RequiredFieldValidator1.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";RequiredFieldValidator1.initialvalue = "";var ValidationSummary1 = document.all ? document.all["ValidationSummary1"] : document.getElementById("ValidationSummary1");ValidationSummary1.showmessagebox = "True";//]]></script> <script type="text/javascript">//<![CDATA[ var Page_ValidationActive = false;if (typeof(ValidatorOnLoad) == "function") { ValidatorOnLoad();} function ValidatorOnSubmit() { if (Page_ValidationActive) { return ValidatorCommonOnSubmit(); } else { return true; }} //]]></script></form> </body></HTML>
Esse funciona. O que não funciona é assim:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML> <HEAD> <title>teste</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name=vs_defaultClientScript content="JavaScript"> <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form name="Form1" method="post" action="teste.aspx" id="Form1"><input type="hidden" name="__VIEWSTATE" value="dDwyNTc1Nzk2ODE7Oz5UWTPjTUHaDxxWQBbNGMA0ef1erw==" /><input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; POSITION: absolute; TOP: 56px; LEFT: 264px" /><input type="submit" name="Button1" value="Button" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " language="javascript" id="Button1" style="Z-INDEX: 102; POSITION: absolute; TOP: 112px; LEFT: 264px" /> </form> </body></HTML>
o que eu fiz de errado?
valew!
Vitor Rubio
Curtir tópico
+ 0
Responder
Posts
22/07/2010
Netasper
Voce esta usando browser IE 8 em algum deles? Verificou o Nivel de Compatibilidade? NO IE 8 tive probolemas como este seu.
Outra coisa é CausesValidation do Botão, esta ok?
[]s
Outra coisa é CausesValidation do Botão, esta ok?
[]s
Responder
22/07/2010
Vitor Rubio
O Causes Validation do botão está true. E o enable client script dos validators também está true.Não é incompatibilidade com browser, porque, como você pode ver, o código html/javascript gerado pelos dois servidores está diferente.
Nos servidores onde não funciona, o validador chama no onclick do botão uma função que não existe no resto da página (Page_ClientValidate).
Verifiquei que essa função existe nos arquivos .js da pasta aspnet_client. Não sei porque esse código (ou a chamada a ele) não está sendo incorporado nas minhas páginas.
No servidor de homologação eu consegui resolver o problema instalando o .netframework 2.0 sp1, mas meu projeto é para o framework 1.1 e eu não gostaria de instalar outro frwk, não sei o q pode acontecer.
Se eu colocar no header das minhas páginas uma referencia para os scripts na pasta aspnet_client poderia funcionar, mas o .net frwk deveria fazer isso automaticamente.
Independentemente de browser, o código q funciona funciona em todos, até no opera, ie8 etc. O q não funciona não funciona em nenhum deles.
Nos servidores onde não funciona, o validador chama no onclick do botão uma função que não existe no resto da página (Page_ClientValidate).
Verifiquei que essa função existe nos arquivos .js da pasta aspnet_client. Não sei porque esse código (ou a chamada a ele) não está sendo incorporado nas minhas páginas.
No servidor de homologação eu consegui resolver o problema instalando o .netframework 2.0 sp1, mas meu projeto é para o framework 1.1 e eu não gostaria de instalar outro frwk, não sei o q pode acontecer.
Se eu colocar no header das minhas páginas uma referencia para os scripts na pasta aspnet_client poderia funcionar, mas o .net frwk deveria fazer isso automaticamente.
Independentemente de browser, o código q funciona funciona em todos, até no opera, ie8 etc. O q não funciona não funciona em nenhum deles.
Responder
Clique aqui para fazer login e interagir na Comunidade :)