Jump to content
Fórum Script Brasil
  • 0

[resolvido] Verificao De Formulario?


babaloricha
 Share

Question

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript">
// JavaScript Document
// funcao utilitaria  que retorna trrue se um strting contiver só caracteres dee spaco em branco
function isblank(s){
    for (var i = 0;i < s.length; i++){
        var c = s.charAt(i);
        if ((c!=' ') && (c!= '\n') && (c!= '')) return false;
    }
    return false;
}

//Essa é a  função que realliza a verificação deo formulario. É invocada
//a partir do tratador ded evento  on submit . O tratador deve retornar  qualquer valor que
// essa função retornar.

function verify(f){
    var msg;
    var empty_fields = "";
    var errors = "";
    // "varre" os elementos do formulario , procurando todos os elementos Text e Textarea
    //que não  tiveram uma propriendade "opcional" dedefinida.
    //Depois  verifica os campos que estão vazios e faz uma lista deles. Alem disso,
    //se qualquer um desses elementos tiver uma propriendade "min" ou "max" deefinida,
    //verifica se os numeros estão no intervalo certo. Se o elemento tiver
    //uma propriedadede "numérica" definida , verifica se é um numero, mas não
    // seu intervalo.Coleta as  mensagens de erro  para os campos que estao errados.
    for(var i=0;i<f.length; i++){
        var e = f.elements[i];
        if (((e.type == "text")||(e.type="textarea")) && !e.optional){
            //Primeiro verifica se o campo esta vazio
            if((e.value == null) || ( e.value =="") || isblank(e.value)){
                empty_fields += "\n" + e.name;
                continue;
            }
            // Agora verifica  os campos  que devem  ser numéricos
            if(e.numeric || (e.min!= null)||(e.max!= null)){
                var v = parseFloat(e.value);
                if(isNaN(v)||((e.min!=null)&&(v < e.min))||((e.max!= null)&&(v>max))){
                    erros += "- O campo " + e.name + " deve ser um numero";
                    if(e.min!=null)
                        errors += "é maior do que " + e.min;
                    if(e.max!=null)
                        errors += " e menor que " + e.max;
                    else if(e.max1=null)
                        errors += " deve ser menor que " + e.max;
                    errors += ".\n";
                }
            }
        }
    }
    // se houver erro , exibe as mensagens , e Retorna  false  para impedir  que o formulario seja  enviado.
    //Caso contrario , retorna true.
    if(!empty_fields && !errors) return true;
    msg = "___________________________________________________________________ _ \n\n"
    msg += "O formulario não foi enviado porque ocorreram os seguites erros.\n";
    msg += "por favor  corrija esses erros e re-envie.\n";
    msg += "___________________________________________________________________ _ \n\n"
    if (empty_fields){
        msg += " - Os capos seguintes estão vazios:" + empty_fields + "\n";
        if( errors) msg += "\n";
    }
    msg += errors;
    alert(msg);
    return false;
}

</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form onsubmit="return verify(this);">
nome: <input type="text" name="nome" /><br />
sobrenome: <input type="text" name="sobrenome" /><br />
Endereço:<br /><textarea name="endereco" rows="4" cols="40"></textarea><br />
CEP: <input type="text" name="zip" /><br />
Telefone: <input type="text" name="telefone" /><br />
<input type="submit" />
</form>
</body>
</html>

e o pior erros não são exibidos!!!!

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...