Error calling function on my page

2

I'm having trouble calling two functions to validate the txtnome and txtsobrenome fields, calling the functions validanome() and validasobrenome() .

I tried calling them as follows:

if (!validanome(cad.txtnome.value)) {
    return;  
}
if (!validasobrenome(cad.txtsobrenome.value)) {
    return;  
}

The entire code of my page and script is here .

There are two functions in JavaScript.

I'd like someone to briefly review and find out why I'm going wrong, what I'm failing. The functions validanome and validasobrenome I listed are there at the end of the script, and I'm trying to call it in my validaFormulario() function.

Note: I took else at the end of function validanome() and validasobrenome() , but it did not work yet.

    
asked by anonymous 20.05.2018 / 03:10

2 answers

2

Include the id s id="txtnome" and id="txtsobrenome" respectively in the name and last name fields:

<input type="text" name="txtnome" id="txtnome" maxlength="40" required />

and

<input type="text" id="txtsobrenome" name="txtsobrenome" maxlength="30" required />

In the functions to validate these fields, it is necessary to put return false when it is invalid and return true when it is valid:

function validanome() {
   var nome = document.getElementById("txtnome").value;
   var padrao = /[^a-zà-ú]/gi;
   var valida_nome = nome.match(padrao);
   if( valida_nome || !nome ){
      alert("Nome possui caracteres inválidos ou é vazio, por favor, preencha-o corretamente.");
      return false;
   }
   return true;
}

function validasobrenome() {
   var sobrenome = document.getElementById("txtsobrenome").value;
   var padrao = /[^a-zà-ú]/gi;
   var valida_sobrenome = sobrenome.match(padrao);
   if( valida_sobrenome || !sobrenome ){
      alert("Sobrenome possui caracteres inválidos ou é vazio, por favor, preencha-o corretamente.");
      return false;
   }
   return true;
}

The other functions are also in trouble, such as muitoCurto() , for example. It should look like this:

function muitoCurto(campo, nome, tamanho) {
   if (campo.value.length < tamanho){
      alert("O conteúdo do campo '" + nome
      + "' deve ter pelo menos " + tamanho + " caracteres."
      + " Por favor, preencha-o corretamente.");
      return false;
   }
}

There you adjust the other functions in the same way.

    
20.05.2018 / 05:08
1

In the functions you want to call, there is already a call to the element that will be filtered and does not have the parameter in which you would be informed which element should be filtered:

var nome = document.getElementById("txtnome").value;
var sobrenome = document.getElementById("txtsobrenome").value;

So the call should be only validanome() and validasobrenome() with no parameters. However, returns tbm are not in accordance with what you specified in if() s, so you should leave the functions without the parameters:

function validanome() {
    var nome = document.getElementById("txtnome").value;
    var padrao = /[^a-zA-Zà-úÀ-Ú]/gi;
    var valida_nome = nome.match(padrao);
    if( valida_nome || !nome ){
        return false;
    }else{
        return true;
    }
}

function validasobrenome(){
    var sobrenome = document.getElementById("txtsobrenome").value;
    var padrao = /[^a-zA-Zà-úÀ-Ú ]/gi;
    var valida_sobrenome = sobrenome.match(padrao);
    if( valida_sobrenome || !sobrenome ){
      return false;
    }else{
      return true;
    }
}

And the if() s for functions without parameters would look like this:

if (!validanome()){
     //codigo de retorno de erro
}
if (!validasobrenome()){
     //codigo de retorno de erro
}

Or with parameters:

function validanome(nome) {
    var padrao = /[^a-zA-Zà-úÀ-Ú]/gi;
    var valida_nome = nome.match(padrao);
    if( !valida_nome || !nome ){
        return false;
    }else{
        return true;
    }
}

function validasobrenome(sobrenome){
    var padrao = /[^a-zA-Zà-úÀ-Ú ]/gi;
    var valida_sobrenome = sobrenome.match(padrao);
    if( !valida_sobrenome || !sobrenome ){
      return false;
    }else{
      return true;
    }
}

And% w of% s of functions with parameters:

if (!validanome(document.getElementById("txtnome").value)){
     //codigo de retorno de erro
}
if (!validasobrenome(document.getElementById("txtsobrenome").value)){
     //codigo de retorno de erro
}
    
20.05.2018 / 03:19