Ir para conteúdo

POWERED BY:

Arquivado

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

mestre fyoda

bug

Recommended Posts

aonde esta em vermelho da um bug , tipo nao apresenta erro mas ele deveria entrar na função abrepagiana mas nao entra mas a outra função entra pq ?

detalhe , depois q coloquei o maxlength ele começo a apresentar esse problema

<head>

<link rel="stylesheet" type="text/css" href="css/tudo.css" />

 

<script>

 

function formatar(src, mask) {

var i = src.value.length;

var saida = mask.substring(0,1);

var texto = mask.substring(i)

if(texto.substring(0,1) != saida) {

src.value += texto.substring(0,1);

}

}

 

function mascara(objForm, evtKeyPress, sMask) { //evtKeyPress pra funcionar no NS

var i, nCount, sValue, fldLen, mskLen, bolMask, sCod, nTecla; //Variáveis locais

 

evtKeyPress = (evtKeyPress) ? evtKeyPress : ((window.event) ? window.event : null);

var nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;

 

objForm.maxLength = sMask.length;

sValue = objForm.value;

 

// Limpa todos os caracteres de formatação que

// já estiverem no campo.

sValue = sValue.toString().replace( "-", "" );

sValue = sValue.toString().replace( "-", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( "/", "" );

sValue = sValue.toString().replace( "/", "" );

sValue = sValue.toString().replace( "(", "" );

sValue = sValue.toString().replace( "(", "" );

sValue = sValue.toString().replace( ")", "" );

sValue = sValue.toString().replace( ")", "" );

sValue = sValue.toString().replace( " ", "" );

sValue = sValue.toString().replace( " ", "" );

fldLen = sValue.length;

mskLen = sMask.length;

 

i = 0;

nCount = 0;

sCod = "";

mskLen = fldLen;

 

while (i <= mskLen) {

bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))

bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

 

if (bolMask) {

sCod += sMask.charAt(i);

mskLen++; }

else {

sCod += sValue.charAt(nCount);

nCount++;

}

 

i++;

}

 

objForm.value = sCod;

 

if (nTecla != 8) { // backspace

if (sMask.charAt(i-1) == "9") { // apenas números...

return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9

else { // qualquer caracter...

return true;

} }

else return true

}

 

</script>

 

<script LANGUAGE="JavaScript">

function MascaraCEP (formato, keypress, objeto)

{

campo = eval (objeto);

if (formato=='cep')

{

caracteres = '01234567890';

separacoes = 1;

separacao1 = '-';

conjuntos = 2;

conjunto1 = 5;

conjunto2 = 3;

if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (conjunto1 + conjunto2 + 1))

{

if (campo.value.length == conjunto1)

campo.value = campo.value + separacao1;

}

else

event.returnValue = false;

}

}

 

function abrepagina() {

 

var w = 300;

var h = 100;

var lado = (screen.width - w) / 2;

var topo = (screen.height - h) / 2;

pagina="acha_cep.php?cep="+document.formulario.cep.value;

window.open(pagina,'noticias','height='+h+',width='+w+',top='+topo+',left='+lado+'');

void(0);

}

</script>

 

</head>

 

<body bgcolor="#F0F8FF">

 

 

<br><br>

<div align="center" class="escrita"><b> <font size="2"> Por Favor desabilite a popup se você usa . </b></font></div>

<br>

 

<table width="300" border="0" cellspacing="0" cellpadding="0" bgcolor="#F0F8FF" class="escrita" align="center">

 

<form action="cadastrar.php" method="post" name="formulario">

 

<tr>

<td><b><div align="center"> Dados da Conta </div></b></td>

</tr>

<tr>

<td><center> Login : </center></td> <td> <input type="text" id="login" name="login"></td>

</tr>

<tr>

<td><center> Senha : </center></td> <td> <input type="password" name="senha"> </td>

</tr>

<tr>

<td><center> Confirma Senha : </center></td> <td> <input type="password" name="confirma"> </td>

</tr>

<tr>

<td><center> Email : </center></td> <td> <input type="text" name="email"> </td>

</tr>

</table>

 

<br><br>

 

<table width="300" border="0" cellspacing="0" cellpadding="0" bgcolor="#F0F8FF" class="escrita" align="center">

 

<tr>

<td class="texto"><center><b> Dados Pessoais </center></b></td>

</tr>

 

<tr>

<td><center> Nome : </center></td> <td> <input type="text" name="nome"> </td>

</tr>

<tr>

<td><center> Sobre Nome : </center></td> <td> <input type="text" name="sobrenome"> </td>

</tr>

<tr>

<td><center> Data de Nascimento : </center></td> <td> <input type="text" name="nascimento" maxlength="10" OnKeyPress="formatar(this, '##/##/####')" size="12"> </td>

</tr>

<tr>

<td> <center> Cep : </center> </td> <td> <input type="text" name="cep" id="cep" onChange="abrepagina()" OnKeyPress="formatar(this, '#####-###')" size="12" maxlength="9"> </td>

</tr>

<tr>

<td> <center> Endereço : </center> </td> <td> <input type="text" name="Endereco" id="Endereco" size="45" readonly> </td>

</tr>

<tr>

<td> <center> Bairro : </center> </td> <td> <input type="text" name="Bairro" id="Bairro" size="30" readonly> </td>

</tr>

<tr>

<td> <center> Cidade : </center> </td> <td> <input type="text" name="Cidade" id="Cidade" size="30" readonly> </td>

</tr>

 

<tr>

<td><center> Estado : </center></td> <td> <input type="text" name="ufremetente" id="ufremetente" size="2" readonly>

</tr>

 

<tr>

<td><br><center> <input name="enviar" type="submit" id="enviar" value="Enviar cadastro">

</center> </td>

</tr>

 

</form>

</table>

 

</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é outro... mas também não sei o que é pois eu copiei o seu código do jeitinho que está aí e fiz uma página com ele.Rodei e funcionou perfeitamente. Só não conseguiu abrir a pagina acha_cep.php porque eu não tenho ela aqui hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

O onChange em input tipo text só é invocado quando o evento onBlur foi disparado. Ou seja, o onChange é um onBlur que só dispara se o conteúdo dele ao dar blur, estiver diferente quando dando você deu focus. :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou passa a pagina q me esqueci . façam o seguinte , vai no campo cep e digita um cepvalido mas ele vai ate o maxlenght=9 mas faça o seguinte digitem o cep correte e depois vcs digitam qualquer numero e vejam no que da . depois tira o maxlenght e veja se da certo.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><link rel="stylesheet" type="text/css" href="css/tudo.css" /><title>Pesquisando CEP</title><style type="text/css"><!--body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;}--></style></head><?# Busca endereço através do CEP e preenche campos # do formulário sem fazer refresh de tela## Maicon Perin - www.barrabrasil.com.br - ciganox@yahoo.com.com# 17.01.2006## baseado no exemplo de Tatiane Gonzaga - tati@soportais.com.br# publicado no fórum iMasters - http://forum.imasters.com.br/index.php?showtopic=147489&st=0?><body><div align="center"> Aguarde buscando dados do CEP <?=$_GET["cep"];?> <br /> <br /> <? flush(); $cep=$_GET["cep"]; $buscacep = "http://www.correios.com.br/servicos/falecomoscorreios/ctBuscaEndereco.cfm?cep=$cep"; $fp = fopen($buscacep,"r"); $cepres = fread($fp,8146); $cepres=str_replace("= '","= \"",$cepres); // SUBSTITUI AS (') POR (") PQ TAVA DANDO PROB NOS DADOS Q CONTINHAM (') $cepres=str_replace("';","\";",$cepres); if (substr_count($cepres,"= \"\";")): echo "<font color='#FF0000'><strong>CEP não localizado</strong></font><BR><BR><B>";?><script>window.opener.document.formulario.cep.value = "";window.opener.document.formulario.Endereco.value = "";window.opener.document.formulario.Bairro.value = "";window.opener.document.formulario.Cidade.value = "";window.opener.document.formulario.ufremetente.value = "";window.opener.document.formulario.cep.focus();</script><a href="java script:window.close();" class="escrita">Fechar Janela </a><? else: echo $cepres; endif; fclose ($fp);?></div></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu coloquei onblur no lugar do onChange mas nao deu certo , pq a popup que deveria estar aberta ela fica maximizada . A janela deveria estar na frente da filho no caso de cep incorreto .

Compartilhar este post


Link para o post
Compartilhar em outros sites

tinha que mudar o evento de onChange pra onBlur. Realmente tava dando um bug meio doido...

Fiz uma modificação do acha_cep.php pois também tava com um bug

 

segue então os códigos corrigidos:

<script>function formatar(src, mask) {var i = src.value.length;var saida = mask.substring(0,1);var texto = mask.substring(i)if(texto.substring(0,1) != saida) {src.value += texto.substring(0,1);}}function mascara(objForm, evtKeyPress, sMask) { //evtKeyPress pra funcionar no NSvar i, nCount, sValue, fldLen, mskLen, bolMask, sCod, nTecla; //Variáveis locaisevtKeyPress = (evtKeyPress) ? evtKeyPress : ((window.event) ? window.event : null); var nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode; objForm.maxLength = sMask.length;sValue = objForm.value;// Limpa todos os caracteres de formatação que// já estiverem no campo.sValue = sValue.toString().replace( "-", "" );sValue = sValue.toString().replace( "-", "" );sValue = sValue.toString().replace( ".", "" );sValue = sValue.toString().replace( ".", "" );sValue = sValue.toString().replace( "/", "" );sValue = sValue.toString().replace( "/", "" );sValue = sValue.toString().replace( "(", "" );sValue = sValue.toString().replace( "(", "" );sValue = sValue.toString().replace( ")", "" );sValue = sValue.toString().replace( ")", "" );sValue = sValue.toString().replace( " ", "" );sValue = sValue.toString().replace( " ", "" ); fldLen = sValue.length;mskLen = sMask.length;i = 0;nCount = 0;sCod = "";mskLen = fldLen;while (i <= mskLen) {bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))if (bolMask) {sCod += sMask.charAt(i);mskLen++; }else {sCod += sValue.charAt(nCount);nCount++;}i++;}objForm.value = sCod;if (nTecla != 8) { // backspaceif (sMask.charAt(i-1) == "9") { // apenas números...return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9else { // qualquer caracter...return true;} }else return true}</script><script LANGUAGE="JavaScript">function MascaraCEP (formato, keypress, objeto){campo = eval (objeto);if (formato=='cep'){caracteres = '01234567890';separacoes = 1;separacao1 = '-';conjuntos = 2;conjunto1 = 5;conjunto2 = 3;if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (conjunto1 + conjunto2 + 1)){if (campo.value.length == conjunto1) campo.value = campo.value + separacao1;}else event.returnValue = false;}}function abrepagina() {var w = 300;var h = 100;var lado = (screen.width - w) / 2;var topo = (screen.height - h) / 2;pagina="acha_cep.php?cep="+document.formulario.cep.value;window.open(pagina,'noticias','height='+h+',width='+w+',top='+topo+',left='+lado+'');void(0);}</script></head><body bgcolor="#F0F8FF"><br><br><div align="center" class="escrita"><b> <font size="2"> Por Favor desabilite a popup se você usa . </b></font></div><br><table width="300" border="0" cellspacing="0" cellpadding="0" bgcolor="#F0F8FF" class="escrita" align="center"><form action="cadastrar.php" method="post" name="formulario"><tr><td><b><div align="center"> Dados da Conta </div></b></td></tr><tr><td><center> Login : </center></td> <td> <input type="text" id="login" name="login"></td></tr><tr><td><center> Senha : </center></td> <td> <input type="password" name="senha"> </td></tr><tr><td><center> Confirma Senha : </center></td> <td> <input type="password" name="confirma"> </td></tr><tr><td><center> Email : </center></td> <td> <input type="text" name="email"> </td></tr></table><br><br><table width="300" border="0" cellspacing="0" cellpadding="0" bgcolor="#F0F8FF" class="escrita" align="center"><tr><td class="texto"><center><b> Dados Pessoais </center></b></td></tr><tr><td><center> Nome : </center></td> <td> <input type="text" name="nome"> </td></tr><tr><td><center> Sobre Nome : </center></td> <td> <input type="text" name="sobrenome"> </td></tr><tr><td><center> Data de Nascimento : </center></td> <td> <input type="text" name="nascimento" maxlength="10" OnKeyPress="formatar(this, '##/##/####')" size="12"> </td></tr><tr><td> <center> Cep : </center> </td> <td> <input type="text" name="cep" id="cep" onBlur="abrepagina()" OnKeyPress="formatar(this, '#####-###')" size="12" maxlength="9"> </td></tr><tr><td> <center> Endereço : </center> </td> <td> <input type="text" name="Endereco" id="Endereco" size="45" readonly> </td></tr><tr><td> <center> Bairro : </center> </td> <td> <input type="text" name="Bairro" id="Bairro" size="30" readonly> </td></tr><tr><td> <center> Cidade : </center> </td> <td> <input type="text" name="Cidade" id="Cidade" size="30" readonly> </td></tr><tr><td><center> Estado : </center></td> <td> <input type="text" name="ufremetente" id="ufremetente" size="2" readonly> </tr><tr><td><br><center> <input name="enviar" type="submit" id="enviar" value="Enviar cadastro"></center> </td></tr></form></table></body>

acha_cep.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><link rel="stylesheet" type="text/css" href="css/tudo.css" /><title>Pesquisando CEP</title><style type="text/css"><!--body {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;}--></style></head><?# Busca endereço através do CEP e preenche campos # do formulário sem fazer refresh de tela## Maicon Perin - www.barrabrasil.com.br - ciganox@yahoo.com.com# 17.01.2006## baseado no exemplo de Tatiane Gonzaga - tati@soportais.com.br# publicado no fórum iMasters - http://forum.imasters.com.br/index.php?showtopic=147489&st=0?><body><div align="center">Aguarde buscando dados do CEP <?=$_GET["cep"];?><br /><br /><?flush();$cep=$_GET["cep"];$buscacep = "http://www.correios.com.br/servicos/falecomoscorreios/ctBuscaEndereco.cfm?cep=$cep";$fp = fopen($buscacep,"r");$cepres = fread($fp,8146);$cepres=str_replace("= '","= \"",$cepres); // SUBSTITUI AS (') POR (") PQ TAVA DANDO PROB NOS DADOS Q CONTINHAM (')$cepres=str_replace("';","\";",$cepres);if (substr_count($cepres,"= \"\";")):echo "<font color='#FF0000'><strong>CEP não localizado</strong></font><BR><BR><B>";?><script>window.opener.document.formulario.cep.value = "";window.opener.document.formulario.Endereco.value = "";window.opener.document.formulario.Bairro.value = "";window.opener.document.formulario.Cidade.value = "";window.opener.document.formulario.ufremetente.value = "";window.opener.document.formulario.cep.focus();window.opener.alert('Cep inválido!');window.close();</script><?else: echo $cepres;endif;fclose ($fp);?></div></body></html>

abraços, t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

uai cara, entra aqui e me fala se deu problema ou não

http://www.gunzonline.roxr.com/teste/teste2.htm

 

de qualquer forma, acho que isso resolve:

<td> <center> Cep : </center> </td> <td> <input type="text" name="cep" id="cep" OnKeyPress="formatar(this, '#####-###')" size="12" maxlength="9"> <span onClick="abrepagina()" style="cursor: pointer">Checar</span></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso estar enganado e vou esperar o resultado do teste de outra pessoa mas eu acho que o problema é aí com você...Alguém além de nós dois aqui poderia testar o link acima para ver se funciona corretamente? obrigado ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na página acha_cep.php coloca depois de <body> e antes de do código php:<script>window.focus();</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

continua a mesma , pq a janela pai é essa :)

function abrepagina() {var w = 300;var h = 100;var lado = (screen.width - w) / 2;var topo = (screen.height - h) / 2;pagina="acha_cep.php?cep="+document.formulario.cep.value;window.open(pagina,'noticias','height='+h+',width='+w+',top='+topo+',left='+lado+'');void(0);}

essa é a função q abre a popup .

Compartilhar este post


Link para o post
Compartilhar em outros sites

então tenta:

function abrepagina() {var w = 300;var h = 100;var lado = (screen.width - w) / 2;var topo = (screen.height - h) / 2;pagina="acha_cep.php?cep="+document.formulario.cep.value;minhaPop = window.open(pagina,'noticias','height='+h+',width='+w+',top='+topo+',left='+lado+'');minhaPop.focus();void(0);}

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.