Avatar billede hansen Nybegynder
27. september 2004 - 20:39 Der er 5 kommentarer og
1 løsning

Udvidet validering

Jeg har nedenstående kode som skal valideres for at alle felter er udfyldt, og at bruger accepterer ved at sætte et hak, først derefter kan der sendes noget afsted.

Kan du hjælpe med at bygge det færdigt, pt. tjekker det kun for filtypen, men mangler så resten



<script type="text/javascript">
function validerFil(fil){
    reg = /\.jp[e]?g$|[\w{0}]/gi;
    if(!fil.value.match(reg)){
        alert('Vi modtager kun billeder af typen JPG eller JPEG!!');fil.focus();fil.select();return false;
    }else return true;
}
</script>
<form method="POST" enctype="multipart/form-data" action="UploadScript1.asp" onsubmit="return validerFil(this.strFile);">
    Dit navn<br>
    <input type="text" name="navn" size="30"><br>
    Din e-mail<br>
    <input type="text" name="email" size="30"><br>
    <input type="checkbox" name="accepter" value="ja">Jeg har læst
    <a href="#readme">nedenstående tekst</a>, og accepterer det der står i den.
    <br>
    <br>
    <input type="FILE" size="20" name="strFile" class="upload" style="height: 18px; border: 1px solid #000000"><br>
    <input type="SUBMIT" value="Send billede" name="func" class="upload" style="height: 18px; border: 1px solid #000000">
    <input type="hidden" value="Action" name="aktivitet">
    <input type="hidden" value="65" name="aID">
</form>
Avatar billede eagleeye Praktikant
27. september 2004 - 22:04 #1
Du kan prøv at rette funktionen til dette her, så den tjekker både filen og checkboxen, der også rette i <form>-tagen onsubmit:


<script type="text/javascript">
function validerFil(theform){
    reg = /\.jp[e]?g$|[\w{0}]/gi;
    if(!theform.strFile.value.match(reg)){
        alert('Vi modtager kun billeder af typen JPG eller JPEG!!');theform.strFile.focus();theform.strFile.select();return false;
    }
    if (!theform.accepter.checked) {
        alert('Du skal læse og accepter reglerne!!');
        return false;   
    }
    return true;
}
</script>
<form method="POST" enctype="multipart/form-data" action="UploadScript1.asp" onsubmit="return validerFil(this);">
    Dit navn<br>
    <input type="text" name="navn" size="30"><br>
    Din e-mail<br>
    <input type="text" name="email" size="30"><br>
    <input type="checkbox" name="accepter" value="ja">Jeg har læst
    <a href="#readme">nedenstående tekst</a>, og accepterer det der står i den.
    <br>
    <br>
    <input type="FILE" size="20" name="strFile" class="upload" style="height: 18px; border: 1px solid #000000"><br>
    <input type="SUBMIT" value="Send billede" name="func" class="upload" style="height: 18px; border: 1px solid #000000">
    <input type="hidden" value="Action" name="aktivitet">
    <input type="hidden" value="65" name="aID">
</form>
Avatar billede hansen Nybegynder
28. september 2004 - 21:51 #2
Hej Eagleeye

Der skal også valideres for at navn og email er udfyldt med noget, gerne med en gyldig e-mail, kan du fikse det.
Avatar billede powernodes Nybegynder
28. september 2004 - 21:56 #3
function validateInput(f) {
  if (f.navn.value.length > 0) {
  } else {
    alert ("Feltet Navn skal udfyldes.");
    f.user.focus();
    return false;
  }
  if (f.theEmail.value != "") {
    if (!validateEmail(f.theEmail.value)) {
      alert("Skriv venligst en gyldig e-mail adresse");
      f.theEmail.focus();
      return false;
    }
  }
  return true;
}

// validate typed in email
function validateEmail(i) {
  var IsRegEx = false;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) {
      IsRegEx = true;
    }
  }
  if (IsRegEx != true) {
    return (i.indexOf(".") > 2) && (i.indexOf("@") > 0);
  } else {
    var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
    var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
    return (!r1.test(i) && r2.test(i));
  }
}

og
return validate(this)
Avatar billede powernodes Nybegynder
28. september 2004 - 21:56 #4
f.user.focus();  = f.navn.focus();

lidt for meget copy paste :)
Avatar billede eagleeye Praktikant
28. september 2004 - 21:59 #5
Du kan lave scriptet sådan her:


<script type="text/javascript">
function validerFil(theform){
    reg = /\.jp[e]?g$|[\w{0}]/gi;
    if(!theform.strFile.value.match(reg)){
        alert('Vi modtager kun billeder af typen JPG eller JPEG!!');theform.strFile.focus();theform.strFile.select();return false;
    }
    if (!theform.accepter.checked) {
        alert('Du skal læse og accepter reglerne!!');
        return false;   
    }
    reg = /^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,6}$/i;
    if(!theform.email.value.match(reg)){
        alert('Email skal udfyldes og være gyldig!!');theform.email.focus();theform.email.select();return false;
    }

    if (!theform.navn.value.length > 0) {
      alert("Du glemte at indtaste dit navn !");
      theform.navn.focus();theform.navn.select();return false;
    }
    return true;
}
</script>
Avatar billede hansen Nybegynder
28. september 2004 - 22:19 #6
Tak til begge, jeg har fortsat med EagleEyes forslag
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester