Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vitor^_^

Validators não estão gerando o client script

Recommended Posts

Desculpem pelo cross publish. Postei a mesma dúvida no forumweb, devmedia e em alguns foruns americanos. Prometo que se encontrar a resposta vou responder como resolver em todos os foruns e até escrever um artigo sobre isso.

Tenho algumas dúvidas sobre os clientscripts dos validators.

 

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ver o código gerado é complicado, temos que ver o código que esta usando para desenvolver, mas desde já te recomendo a não usar essas validators, eles geram códigos gigatescos e quase incompreensiveis. Procure outras soluções, como javascript e jquery.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.