Ir para conteúdo
Fórum Script Brasil
  • 0

function MM_validateForm()


pinelicarlos

Pergunta

Oi,

Ei queria que esta condição testasse

if (val) { nm=val.name; if (((val=val.value)!= "") || ((val=val.value)!= "Nome:")){
se o valor co campo é nulo "" ou se tem "Nome:" escrito, pois no form tenho isso desse modo:
<input type="text" name="Nome" value="Nome:" onfocus="this.value=''" />
mas alguma coisa não está correndo bem, pois está ignorando a condição. Tenho a minha função de validação do form assim:
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if (((val=val.value)!= "") || ((val=val.value)!= "Nome:")){
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='• '+nm+': Tem que conter um endereço de e-mail válido.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='• '+nm+': O número não é valido.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='• '+nm+' Tem que ser um número entre '+min+' e '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '• '+nm+': É necessário.\n'; }
  } 

  if (errors) alert('Os seguintes campos têm erros:\n'+errors);
  document.MM_returnValue = (errors == '');
}
E o Form assim:
<form action="/cgi-bin/forms.pl" method="post" enctype="multipart/form-data" name="form" id="form" onSubmit="MM_validateForm('Nome','','R','Email','','RisEmail','Mensagem','','R');return document.MM_returnValue">
                                        <div>
                                        <div class="line"><input type="text" name="Nome" value="Nome:" onfocus="this.value=''" />
                                        </div>
                                        <div class="line"><input type="text" name="Email" value="E-mail:" onfocus="this.value=''" />
                                        </div>
                                        <textarea name="Mensagem" cols="30" rows="5"  onFocus="this.value=''">Mensagem:</textarea>
                                        <br />
                                        <INPUT name="Submit" type="submit" class="link_4" value="Enviar">
                                        </div>
                                      </form>

Agradeço ajuda!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
i aew pinelicarlos, bom acho que o problema é logica, muda o || por &&,

pois nenhuma das condições podem ser verdaderam para validar o form

fica tipo assim:

if ( ( ( val = val.value ) != "" ) && ( ( val = val.value ) != "Nome:" ) )

espero que ajude abraço!

Pois, também me ocorreu isso depois de postar. Mas o resultado é o mesmo :(

Link para o comentário
Compartilhar em outros sites

  • 0

Tem certeza que ele esta ignorando o if?? Tentou colocar um alert("teste") logo depois desse if pra ver??

E o que significa aqueles onfocus=this.value=''??? você quer apagar o valor do campo?? E se o usuario acabou se esquecendo e clicou no campo sem querer, você vai apagar tudo? Oo

E outra: return document.MM_returnValue, O que é isso? Que propriedade é essa aki? Se ta no onsubmit, deveria ser usado o retorno da propria funcao que valida o form... Da uma explicada maior aew sobre exatamente o que tu quer...

T+

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...