scottfild 0 Denunciar post Postado Julho 3, 2010 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
Eder Fortunato 15 Denunciar post Postado Julho 5, 2010 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
scottfild 0 Denunciar post Postado Julho 6, 2010 Primeiramente obrigado por responder 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 6, 2010 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
scottfild 0 Denunciar post Postado Julho 6, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 6, 2010 E como você ta fazendo todos esses if else Tem como mostrar ai? Abraços Compartilhar este post Link para o post Compartilhar em outros sites
scottfild 0 Denunciar post Postado Julho 6, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 6, 2010 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
scottfild 0 Denunciar post Postado Julho 6, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 6, 2010 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
scottfild 0 Denunciar post Postado Julho 6, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 6, 2010 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
scottfild 0 Denunciar post Postado Julho 6, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 6, 2010 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
scottfild 0 Denunciar post Postado Julho 6, 2010 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 Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Julho 7, 2010 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