How can I make my checkLength(); check the length for both "fuldenavn" and "email" ?

StackOverflow https://stackoverflow.com/questions/23607510

  •  20-07-2023
  •  | 
  •  

Pregunta

so I have been messing with some javascript validation it pretty much works, except I cannot seem to get the checklength function to check both email length and fuldenavn's length, either it checks fuldenavn or email depending on which I mention first in result2, I've tried swapping them and all sorts of things nothing seems to work.. basically I want this one function to check both lengths and return the error message, I apologize some of it is not in english.

Here's my code so far:

window.onload = function() {

var reg_name = /^[A-Za-zÆØÅæøå]{2,20}$/;                            
var reg_numbers = /^[0-9 ]+$/;                                      
var reg_email = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/;

var form1 = document.getElementById('form1');
var fuldenavn = document.getElementById('fuldenavn');
var email = document.getElementById('email');
var submit = document.getElementById('btn');
var errorMsg = document.getElementById('errormessage');
var error;

  form1.onsubmit = function(){
  error=""; 
  var result1 = nameValidate(fuldenavn, "Undlad venligst at benytte ugyldige tegn ved indtastning af dit fulde navn.");
  var result2 = checkLength(email, fuldenavn, "fornavn felter skal indeholder mindst 2 karakterer."); 
  var result3 = emailValidate(email, "Undlad venligst at benytte ugyldige tegn ved indtastning af email.");

    errorMsg.innerHTML = error;         
    errorMsg.style.color = "red";   
    if(result1 && result2 && result3) { 
     alert("Du er blevet tilmeldt vores nyhedsbrev.");
     return true;
     } else {
     alert("Tjek fejl meddelelsen og prøv venligst igen.");
     return false;                  
    }
};

var checkLength = function (element) {
    if(element.value.length < 2){
    msg = "- Begge felter skal indeholde mindst 2 karakterer.";
    error = error + msg + "<br>";
    } else {
    return true;
    }
};


    var emailValidate = function(element) {
    if(!element.value.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/)){
    //  alert("emailValidate works");
    msg = "- Undlad venligst at benytte ugyldige tegn ved indtastning af email.";
    error = error + msg + "<br>";
    } else {
    //  alert("emailValidate fails");
    return true;
    }
}

    var nameValidate = function(element) {
    if(!element.value.match(/^[A-Za-zÆØÅæøå ]{1,20}$/)){
    //  alert("nameValidate works");
    msg = "- Undlad venligst at benytte ugyldige tegn ved indtastning af dit fulde navn.";
    error = error + msg + "<br>";
    } else {
    //  alert("nameValidate fails");
    return true;
    }
}

};
¿Fue útil?

Solución

    var checkLength = function () {
     var email = arguments[0];
     var fuldenavn = arguments[1];
     if (email.value.length < 2 || fuldenavn.value.length < 2 ) {
        msg = "- Begge felter skal indeholde mindst 2 karakterer.";
        error += msg + "<br>";
        return false;
     } 
    };

  form1.onsubmit = function(){
  .......
  var checkArgs = [email,fuldenavn];
  checkLength .apply(null, checkArgs );  

  ..........
  };

Look into arguments, apply()

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top