Ir para conteúdo

POWERED BY:

Arquivado

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

scottfild

Problema com Verificação

Recommended Posts

E ai galera tudo bom? :)

então... estou com um pequeno probleminha aqui com verificação de um formulário, porém todos os campos do formulário são por xml...

 

preciso que na hora que eu clicar em enviar

ele verifica se o campo foi preenchido certo ou não,

 

isso está acontecendo, porém se eu preencher só o primeiro campo, e o campo de email, ele ja envia,

não precisa de preencher o outro que tb seria requerido preencher...

 

aqui está um pedaço do codigo:

 

for (i=0; i<total; i++)
{
	field_mc.duplicateMovieClip("field_mc"+i, i)
	thumb = eval("field_mc"+i)

	emailField = xmlNodes.firstChild.childNodes[i].attributes.verifyEmail;
	if(emailField == "yes")
	{
		thumb_e = eval("field_mc"+i)
		thumb_e.plus_mc._visible = 1;
	}

	send_bt.onRelease = function()
	{
		for (i=0; i<total; i++)
		{
			thumb = eval("field_mc"+i)
			if ( thumb.txt_field.text == "" || thumb.txt_field.text == xmlNodes.firstChild.childNodes[i].attributes.errorMessage)
			{
				Selection.setFocus(null);
				thumb.txt_field.text = xmlNodes.firstChild.childNodes[i].attributes.errorMessage;
			}
						
			else if(emailField == "yes" || thumb_e.txt_field.text.indexOf("@") == -1 || thumb_e.txt_field.text.indexOf(".") == -1)
			{
				thumb_e.txt_field.text = "Invalid Email!"
				Selection.setFocus(thumb_e.txt_field);					
			}
																		
			else
			{
				trace("Enviado");
			}
		}
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

meio confuso isso ai, por acaso existe apenas um botão, e vários campos? se sim, a lógica teria que ver diferente, algo assim:

 

 

var podeEnviar = true
for (i=0; i<total; i++)
 {
     thumb = eval("field_mc"+i)
     if ( condição 1)
     {
         podeEnviar = false;
     }                                          
     else if( condição 2)
     {
         podeEnviar = false;                     
     }

}
if(podeEnviar){
   trace("Enviado");
}

 

 

assim ele verifica todos os campos, e só depois diz se pode enviar ou não

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente obrigado por responder Imagem Postada

 

Então...

A ideia é o seguinte,

 

existe apenas um botão que envia, mais para ele enviar teria que passar pela verificação de todos os campos(todos os campos que são criados pelo xml),

e a verificação seria assim:

 

Se eu clicar no botao enviar, e os campos estiverem vazios, ele vai receber a mensagem "Preencha + o nome do campo".

 

Isso auqi seria o seguinte:

emailField = xmlNodes.firstChild.childNodes[i].attributes.verifyEmail;if(emailField == "yes"){     thumb_e = eval("field_mc"+i)     thumb_e.plus_mc._visible = 1;}
isso é para verificar se o campo é um campo de email, se ele for,

teria que ter o @.

 

o que esta acontecendo é que nao importa se os campos estão preenchidos, se eu ja pular e digitar o "@" ele ja envia...

eu preciso que antes de enviar esteje tudo preenchido..

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então faça como o eder falou e faça um if else de todos os campos antes de enviar

 

tem exemplos na area de artigos e tutoriais.

Da um olhadinha lá como a galera faz.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, berseck,

então eu dei uma olhada la, e fiz com vários exemplos,

e atualmente eu estou usando um if else,

porém parece que ele está ignorando,

 

se eu fizer a condição do 2º else if ele ja envia e não passa pelo primeiro if..

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

está justamente como eu postei ai no topico, da uma olhada:

 

for (i=0; i<total; i++)
{
        field_mc.duplicateMovieClip("field_mc"+i, i)
        thumb = eval("field_mc"+i)

        emailField = xmlNodes.firstChild.childNodes[i].attributes.verifyEmail;
        if(emailField == "yes")
        {
                thumb_e = eval("field_mc"+i)
                thumb_e.plus_mc._visible = 1;
        }

        send_bt.onRelease = function()
        {
                for (i=0; i<total; i++)
                {
                        thumb = eval("field_mc"+i)
                        if ( thumb.txt_field.text == "" || thumb.txt_field.text == xmlNodes.firstChild.childNodes[i].attributes.errorMessage)
                        {
                                Selection.setFocus(null);
                                thumb.txt_field.text = xmlNodes.firstChild.childNodes[i].attributes.errorMessage;
                        }
                                                
                        else if(emailField == "yes" || thumb_e.txt_field.text.indexOf("@") == -1 || thumb_e.txt_field.text.indexOf(".") == -1)
                        {
                                thumb_e.txt_field.text = "Invalid Email!"
                                Selection.setFocus(thumb_e.txt_field);                                  
                        }
                                                                                                                                                
                        else
                        {
                                trace("Enviado");
                        }
                }
        }
}

no caso se eu ja fizer a ação do segundo if ali

else if(emailField == "yes" || thumb_e.txt_field.text.indexOf("@") == -1 || thumb_e.txt_field.text.indexOf(".") == -1)
{
     thumb_e.txt_field.text = "Invalid Email!"
     Selection.setFocus(thumb_e.txt_field);                                  
}

ele ja pula pro else e envia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom acho que você não entendeu o espirto da coisa...

 

O que o eder falou e que eu to falando é algo assim:

send_bt.onRelease = function(){
if(nome.text == ""){
 // erro msg
}
if(emailField == "yes" || thumb_e.txt_field.text.indexOf("@") == -1 || thumb_e.txt_field.text.indexOf(".") == -1){
 //erro msg
}
if(mensagem == ""){
 //erro msg
}

Tendeu??? não tem else if é só IF

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois é...

ja tentei colocar só if,

porém se eu digitar no camp ode email @ e .

ele ja envia sem passar pelo primeiro if.. entendeu? nao preciso digitar nada no primeiro campo,

se eu digitar no segundo ele ja passa..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você não esta fazendo o if corretamente.

 

Não tem como ele passar diretamente pelo o if se ele for igual ao que você procura...

Se você disser no if(name.text == "")

 

E o campo name estiver vazio... ele vai entrar no if querendo você ou não.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

então... estou tentando da seguinte maneira agora;

 

botao.onRelease = function()
{
	if(campo.text == "")
	{
		 campo.text = "Preencha este campo";
	}
	if(email.text.indexOf("@") == -1)
	{
		 email.text = "Email Invalido"
	}
	else
	{
		 trace("envia");
	}
}

se eu digitar o no campo (primeiro if) e apertar enviar, ta certo ele vai pedir o "@" no email,

mais se eu deixar o primeiro campo vazio, e digitar o "@" ja no segundo e enviar, ele ja aparece "envia"...

 

Edit:

entao.. agora eu tentei desse jeito em um formulario normal em outro fla

e funcionou dessa forma:

 

botao.onRelease = function()
{
	if(campo.text == "" || campo.text == "Preencha este campo")
	{
		 campo.text = "Preencha este campo";
	}
	else if(email.text.indexOf("@") == -1 || campo.text == "Email Invalido")
	{
		 email.text = "Email Invalido"
	}
	else
	{
		 trace("envia");
	}
}

mais no original nao.. talvez se o problema for outro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preste atenção no que você ta fazendo:

if(campo.text == "" || campo.text == "Preencha este campo")
 	{
 	campo.text = "Preencha este campo";
 	}
 	if(email.text.indexOf("@") == -1 || campo.text == "Email Invalido")
 	{
 	email.text = "Email Invalido"
 	}
 	else
 	{
 	trace("envia");
 	}

 

Esse else ai vai dar sempre que o e-mail estiver válido né amigo....

O que você tem que checar é se tudo estiver funcionando corretamente ele envia... caso contrario não

 

Como o eder falou:

var podeEnviar = true;
 send_bt.onRelease = function(){
 	if ( condição 1)
 	{
 	podeEnviar = false;
 	} 	
 	else if( condição 2)
 	{
 	podeEnviar = false; 	
 	}else if(podeEnviar == true){
 		envia!!!
 	}
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

desse jeito que voce mandou funciona agora...

eu ja testei em outro arquivo....

 

porém são varios campos cara, e é tudo por xml

esse if esta dentro de um for

[code]
for (i=0; i<total; i++)
{
     thumb = eval("field_mc"+i)
     if(tal)
     {
             tal...
     }
}
ele nao esta funcionando quando eu colococo ele dentro do for..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não faça com FOR

 

Faça um por 1... dando nome de campo por nome de campo...

E vai testando tudo direitinho até funcionar

 

É assim que eu faço... da pra fazer com for

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não faça com FOR

 

Faça um por 1... dando nome de campo por nome de campo...

E vai testando tudo direitinho até funcionar

 

É assim que eu faço... da pra fazer com for

 

Abraços

sim, é bem melhor e mais facil,

mais para o que eu estou precisando eu preciso com for haha

tenso..

 

bom se voce precisar do fla eu posso disponibilizar pra ficar mais facil

 

Vlw ae Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

para ajudar, use o trace, assim você sabe em que ponto não esta funcionando, algo assim:

 

 

for (i=0; i<total; i++)
{
    thumb = eval("field_mc"+i);
    trace('thumb: ' + thumb )
    trace('thumb texto: ' + thumb.txt_field.text)
    trace('tem @: ' +  (thumb_e.txt_field.text.indexOf("@") == -1))
............

 

 

e por ai, use o trace nas comparações do IF, como eu fiz ai em cima

 

[]´s

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.