Avatar billede menthos Nybegynder
22. juni 2004 - 18:47 Der er 18 kommentarer og
1 løsning

hvorfor virker det ik?

<script language="JavaScript">
function formCheck() {
    if (document.post.brugernavn.value == "") {
      alert("Du skal skrive dit navn");
      document.post.brugernavn.focus();
      return false
    }
        if ((document.post.password.value != document.post.gentagpassword.value) && (document.post.gentagpassword.value)) {
        alert('Adgangskoden matcher ikke bekræftelses adgangskoden!');
        document.post.password.focus();
        return (false);
    }
    if (document.post.password.value == '') {
        alert('Du skal skrive en adgangskode!');
        document.post.password.focus();
        return (false);
    }
    if (document.post.gentagpassword.value == '') {
        alert('Du skal skrive en bekræftelses adgangskode!');
        document.post.gentagpassword.focus();
        return (false);
    }
if ((document.post.email.value != '') && (document.post.email.value.indexOf("@") == -1)) {
        alert("Du glemte et @ i din e-mail!");
        document.post.email.focus();
        return false;
    }
    if ((document.post.email.value != '') && (document.post.email.value.indexOf(".") == -1)) {
        alert("Du glemte et . (punktum) i din e-mail!");
        document.post.email.focus();
        return false;
    } 
    if (document.post.alder.value == "") {
      alert("Du skal skrive din alder");
      document.post.alder.focus();
      return false;
    }
    if(!document.post.alder.value.match(/\d+$/)){
    alert('Du må kun bruge tal i din alder');
          document.post.alder.focus();
      return false;
    }
    if (document.post.alder.value < 15) {
      alert("Du skal mindst være 15 for at bruge denne service");
      document.post.alder.focus();
      return false;
    }
        if (document.post.gruppe.value == "") {
      alert("Du skal skrive din gruppe");
      document.post.gruppe.focus();
      return false;
    }    if (document.post.division.value == "") {
      alert("Du skal skrive din division");
      document.post.division.focus();
      return false;
    }
    if (document.post.hojde.value == "") {
      alert("Du skal skrive din højde");
      document.post.hojde.focus();
      return false;
    }
        if(!document.post.hojde.value.match(/\d+$/)){
    alert('Du må kun bruge tal i din højde');
          document.post.hojde.focus();
      return false;
    }
    if (document.post.vagt.value == "") {
      alert("Du skal skrive din vægt");
      document.post.vagt.focus();
      return false;
    }
        if(!document.post.vagt.value.match(/\d+$/)){
    alert('Du må kun bruge tal i din vægt');
          document.post.vagt.focus();
      return false;
    }    
    if(document.post.dag.value != "") && (!document.post.dag.value.match(/^(0?[1-9]|[12]\d|3[01])$/)){
  alert('ulovlig dag');
      document.post.dag.focus();
      return false;
}

if(document.post.mdr.value != "") && (!document.post.mdr.value.match(/^(0?[1-9]|1[0-2])$/)){
  alert('ulovlig måned');
      document.post.mdr.focus();
      return false;

}
if(document.post.aar.value != "") && (!document.post.aar.value.match(/^(19|20)?(\d{2})$/)) {
  alert('ulovligt år');
      document.post.aar.focus();
      return false;
  }
    if(!document.post.profiltext.value.match(/\w{20,}/)){
    alert('Profilteksten skal mindst være 20tegn');
    document.post.profiltext.focus();
      return false;
    }

}
</script>
Avatar billede roenving Novice
22. juni 2004 - 18:53 #1
Prøv først at sætte en

return true;

ind lige før funktionens slutning ...
Avatar billede roenving Novice
22. juni 2004 - 18:53 #2
Dernæst:

Hvordan kalder du funktionen ?-)
Avatar billede skovenborg Nybegynder
22. juni 2004 - 19:10 #3
i dette tilfælde bør det i hvert fald være:
<form onsubmit="return formCheck();">
samtidig med at man tillægger roenvings første kommentar til funktion.
Avatar billede skovenborg Nybegynder
22. juni 2004 - 19:12 #4
hvad er fejlen egentlig - bringer den en fejl eller virker den ikke som forventet?

Forresten er det her lidt mærkeligt sat op:
if ((document.post.password.value != document.post.gentagpassword.value) && (document.post.gentagpassword.value)) {
        alert('Adgangskoden matcher ikke bekræftelses adgangskoden!');
        document.post.password.focus();
        return (false);
    }
    if (document.post.password.value == '') {
        alert('Du skal skrive en adgangskode!');
        document.post.password.focus();
        return (false);
    }
    if (document.post.gentagpassword.value == '') {
        alert('Du skal skrive en bekræftelses adgangskode!');
        document.post.gentagpassword.focus();
        return (false);
    }

Det giver vel mere mening først at teste om password og gentagpassword er udfyldt, og dernæst teste om de er ens:
if (document.post.password.value == '') {
        alert('Du skal skrive en adgangskode!');
        document.post.password.focus();
        return (false);
    }
    if (document.post.gentagpassword.value == '') {
        alert('Du skal skrive en bekræftelses adgangskode!');
        document.post.gentagpassword.focus();
        return (false);
    }
if ((document.post.password.value != document.post.gentagpassword.value)) {
        alert('Adgangskoden matcher ikke bekræftelses adgangskoden!');
        document.post.password.focus();
        return (false);
    }
Avatar billede menthos Nybegynder
22. juni 2004 - 19:39 #5
<form method="post" action="opret.php" name="post" onsubmit="return formCheck()" enctype="multipart/form-data">
Avatar billede menthos Nybegynder
22. juni 2004 - 19:39 #6
fejlen er den ikke udfører funktionen
Avatar billede roenving Novice
22. juni 2004 - 19:40 #7
Har du indsat den return true-ting:

    }
    return true;
}
</script>
Avatar billede menthos Nybegynder
22. juni 2004 - 19:47 #8
ja
Avatar billede erikjacobsen Ekspert
22. juni 2004 - 19:50 #9
Du skal vel bare rette syntaksfejlene, fx i denne linie:

  if(document.post.dag.value != "") && (!document.post.dag.value.match(/^(0?[1-9]|[12]\d|3[01])$/)){
Avatar billede menthos Nybegynder
22. juni 2004 - 19:58 #10
okay.... har du tænkt dig og skrive rettelserne eller hva....?
Avatar billede erikjacobsen Ekspert
22. juni 2004 - 21:24 #11
Øh, det regnede jeg ikke med ;)  Du får ikke udført funktionen fordi der er
syntaksfejl i - det var bare det jeg ville sige.

Siger din browser ikke, der er fejl?
Avatar billede menthos Nybegynder
22. juni 2004 - 21:54 #12
den siger ikke der er fejl den udfører den bare ikke....
Avatar billede erikjacobsen Ekspert
22. juni 2004 - 22:05 #13
Jamen ok, da. Jeg har ikke kigget efter flere fejl, men ret
  if(document.post.dag.value != "") && (!document.post.dag.value.match(/^(0?[1-9]|[12]\d|3[01])$/)){
til
  if(document.post.dag.value != "" && !document.post.dag.value.match(/^(0?[1-9]|[12]\d|3[01])$/)){
og se hvad der sker. Hvordan kan du leve med en browser, der ikke
fortæller dig, at der er noget galt? Hvilken bruger du?
Avatar billede menthos Nybegynder
22. juni 2004 - 22:13 #14
jeg bruger crazy browser
Avatar billede menthos Nybegynder
22. juni 2004 - 22:14 #15
det hjalp ikke
Avatar billede menthos Nybegynder
22. juni 2004 - 23:29 #16
jeg ka sige så meget at fejlen ligger nok i det her:
if(document.post.dag.value != "" && !document.post.dag.value.match(/^(0?[1-9]|[12]\d|3[01])$/)){
  alert('ulovlig dag');
      document.post.dag.focus();
      return false;
}

if(document.post.mdr.value != "") && (!document.post.mdr.value.match(/^(0?[1-9]|1[0-2])$/)){
  alert('ulovlig måned');
      document.post.mdr.focus();
      return false;

}
if(document.post.aar.value != "") && (!document.post.aar.value.match(/^(19|20)?(\d{2})$/)) {
  alert('ulovligt år');
      document.post.aar.focus();
      return false;
  }

for da jeg fjernede dem virkede scriptet
Avatar billede menthos Nybegynder
22. juni 2004 - 23:30 #17
hmm jeg ændrede lige mdr og aar lige som du havde gjort med dag... det hjalp... svar så får du points..
Avatar billede erikjacobsen Ekspert
22. juni 2004 - 23:39 #18
Det hjælper selvfølgelig først når alle fejl er fjernet ;)
Men ellers tak, jeg samler slet ikke på point.
Avatar billede menthos Nybegynder
23. juni 2004 - 01:24 #19
nå okay
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