Ir para conteúdo

Arquivado

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

Patricia

ajax + javascript + ie6

Recommended Posts

fiz um site todinho utilizando o prototype, todos os meus formulários estão validados e tudo foi testado e aprovado no ie7 e no ff, mas agora fui testar no ie6 e a porcaria não entende nenhuma das minhas validações.

 

testei as minhas funções js no ie7 em sites sem ajax (prototype) e elas funcionam perfeitamente, mas no meu que tah com prototype não funciona.

 

Segue uma das validações que não vão:

 

chamada da função

if (!IsValidEmail(objForm.ds_email))

{ alert('E-MAIL inválido.'); objForm.ds_email.focus(); return false; }

função

function IsValidEmail( Value ){

var i, Current, Tmp

var Array = Value.split( '@' , 3 );

 

// Se tiver mais ou menos que 1 Arroba ou nao tiver nada antes ou apos o Arroba

if( Array.length != 2 || Array[0] == '' || Array[1] == '' )

return false;

 

Tmp = Array[0];

// Se contiver caracteres especiais antes do Arroba

for(i=0; i < Tmp.length ;i++)

{

Current = Tmp.charAt(i);

if( (Current < '0' || Current > '9') && (Current < 'A' || Current > 'Z') && (Current < 'a' || Current > 'z') && Current != '_' && Current != '-' && Current != '.' )

return false;

}

 

Tmp = Array[1];

// Se contiver caracteres especiais depois do Arroba

for(i=0; i < Tmp.length ;i++)

{

Current = Tmp.charAt(i);

if( (Current < '0' || Current > '9') && (Current < 'A' || Current > 'Z') && (Current < 'a' || Current > 'z') && Current != '_' && Current != '-' && Current != '.' )

return false;

}

 

Tmp = Tmp.split( '.' , 4 );

// Se depois do arroba existir menos de 2 ou mais de 3 pontos

if( Tmp.length != 2 && Tmp.length != 3 )

return false;

 

// Se depois do arroba existir menos de 2 ou mais de 3 pontos

if( Tmp.length == 2 && (Tmp[0] == '' || Tmp[1] == '') )

return false;

 

// Se depois do arroba existir menos de 2 ou mais de 3 pontos

if( Tmp.length == 3 && (Tmp[0] == '' || Tmp[1] == '' || Tmp[2] == '') )

return false;

 

return true;

}

no meu ie 6 (multiples ie) dá erro nessa linha var Array = Value.split( '@' , 3 );

 

esse é só um dos erros, não funciona validação de cpf, validação de data,

 

http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Patricia, nesse code que você postou tem um erro, pode ter ficado assim quando foi postar, altere:

 

function valida(form) {
	if (!IsValidEmail(objForm.ds_email)) { 
		alert('E-MAIL inválido.');
		objForm.ds_email.focus();
		return false;
	}
	else {
		return true;
	}
}

Para...

function valida(form) {
	if (!IsValidEmail(objForm.ds_email.value)) { 
		alert('E-MAIL inválido.');
		objForm.ds_email.focus();
		return false;
	}
	else {
		return true;
	}
}

Tem que especificar o value do objeto ds_email.

Testado no IE 6, 7 e FF. Se continuar dando erro nas validações do IE6, declare a variável sem definir o var.

 

var Array = Value.split( '@' , 3 );

Array = Value.split( '@' , 3 );

Poste os demais scripts, especificando as linhas de erro.

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.