Gå til innhold

Hjelp til javascript (vil ikke kjøres)


Anbefalte innlegg

Hei. Jeg driver for tiden med et skoleprosjekt om å lage en nettbutikk. Har nå kommet til stadiet hvor jeg legger inn valideringsregler i javascript, noe jeg kan veldig lite om.

På denne siden er det registrering av kunder som foregår, og jeg ønsker at samtlige felter skal valideres ved submit.

Jeg har også en AJAX-funksjon som henter automatisk poststed etter postnr er skrevet inn. Dette fungerte helt jeg til startet på den valideringsfunksjonen.

 

Det virker som javascriptet ikke vil kjøres i det hele tatt, hverken valideringeren eller AJAX.

Er det noen som vet hva feilen kan være?

 

 

(.........)
<script language="JavaScript" type="text/javascript">

function finn_poststed(Postnr) //denne skal være ok!
{
   xmlhttp = new XMLHttpRequest();
   xmlhttp.onreadystatechange = function ()
   {
       if(xmlhttp.readyState==4 && xmlhttp.status==200)
       {
          funnetpoststed = xmlhttp.responseText;
          if(funnetpoststed == "Feil1")
          {
               document.getElementById("feilPostnr").innerHTML="Teknisk feil i henting av postnr.";
          }
          else if(funnetpoststed == "Feil2")
          {
              document.getElementById("feilPostnr").innerHTML="Feil i henting av postnr.";
          }
          else if(funnetpoststed == "Feil postnr!")
          {
              document.getElementById("feilPostnr").innerHTML="Feil postnr!";
          }
          else
          {
               document.skjema.poststed.readOnly = false;
               document.skjema.poststed.value = funnetpoststed;
               document.skjema.poststed.readOnly = true;
          }
       }
   }
   url="autopoststed.php?postnr="+Postnr;
   xmlhttp.open("GET",url,true);
   xmlhttp.send();
}

function valider_postnr() //denne skal være ok!
{
   if(skjema.postnr.value == "" || skjema.etternavn.value.length!=4 )
{
	alert( "Skriv inn et firesifret postnr." );
	form.etternavn.focus();
	return false ;
}
else
{
	regEx = /^[0-9]{4}$/;
    OK = regEx.test(document.skjema.postnr.value);
    if(!OK)
    {
        document.getElementById("feilPostnr").innerHTML="<p>Feil postnr. Skriv inn 4 siffer.</p>";
        alert( "Skriv inn et firesifret postnr." );
        return false;
    }
    document.getElementById("feilPostnr").innerHTML="";
    finn_poststed(document.skjema.postnr.value);
    return true;
   }
}

function valider(skjema)
{
if (skjema.fornavn.value == "")
{
	alert( "Skriv inn et fornavn." );
	form.fornavn.focus();
	return false ;
}
else
{
	regEx = /^[a-zæøåA-ZÆØÅéíáäë- ]{2,30}$/;
    OK = regEx.test(document.skjema.fornavn.value);
    if(!OK)
    {
	alert( "Fornavnet du har skrevet er ikke gyldig! Prøv igjen." );
	form.fornavn.focus();
	return false ;
           }
}

if (skjema.etternavn.value == "")
{
	alert( "Skriv inn et etternavn." );
	form.etternavn.focus();
	return false ;
}
else
{
	regEx = /^[a-zæøåA-ZÆØÅéíáäë- ]{2,30}$/;
    OK = regEx.test(document.skjema.etternavn.value);
    if(!OK)
    {
	alert( "Etternavnet du har skrevet er ikke gyldig! Prøv igjen." );
	form.etternavn.focus();
	return false ;
    }
}

if (skjema.email.value == "")
{
	alert( "Du må skrive inn en e-postadresse!" );
	form.email.focus();
	return false ;
}
else
{
    regEx = /^[a-zæøåA-ZÆØÅ0-9._-]+@[a-zæøåA-ZÆØÅ0-9.-]+.[a-zA-Z]{2,4}$/;
    OK = regEx.test(document.skjema.email.value);
    if(!OK)
    {
	    alert( "E-posten du har skrevet er ikke gyldig! Prøv igjen." );
		form.email.focus();
		return false ;
	}		
}

if (skjema.adresse.value == "" || skjema.adresse.value.length<2 )
{
	alert( "Skriv inn en adresse." );
	form.brukernavn.focus();
	return false ;
}
else
{
	regEx = /^[a-zæøåA-ZÆØÅ- 0-9]$/;
    OK = regEx.test(document.skjema.epost.value);
    if(!OK)
    {
	    alert( "Adressen du har skrevet er ikke gyldig! Prøv igjen." );
		form.epost.focus();
		return false ;
	}		
}

if (skjema.pw1.value == "" || skjema.pw1.value.length<5 )
{
	alert( "Skriv inn et passord på minst 5 tegn." );
	form.pw1.focus();
	return false ;
}
else
{
	regEx = /^[a-zæøåA-ZÆØÅ 0-9]$/;
    OK = regEx.test(document.skjema.pw1.value);
    if(!OK)
    {
	    alert( "Passordet må inneholde tall og/eller bokstaver (ikke spesialtegn) og må være fra 5 til 20 tegn langt." );
		form.pw1.focus();
		return false ;
	}		
}

if (skjema.pw2.value == "" || skjema.pw2.value.length<5 )
{
	alert( "Skriv inn et passord på minst 5 tegn (samme som ovenfor)." );
	form.pw2.focus();
	return false ;
}
else
{
	regEx = /^[a-zæøåA-ZÆØÅ 0-9]$/;
    OK = regEx.test(document.skjema.pw1.value);
    if(!OK)
    {
	    alert( "Passordet må inneholde tall og/eller bokstaver (ikke spesialtegn) og må være fra 5 til 20 tegn langt." );
		form.pw1.focus();
		return false ;
	}		
}

return true ;
}

</script>

</head>


<body>
<h1>Registrer deg som kunde!</h1>

<p>Fyll inn informasjon her for å registre deg i systemet!</p>

<form action="regok.php" method="post" name="skjema" onsubmit="return valider(this);">
<fieldset title="registreringsskjema">
<legend><strong>Registreringsskjema</strong></legend>

<table>
<tr>
<td>Fornavn</td>
<td>
<input type="text" name="fornavn" />
</td>
</tr>

<tr>
<td>Etternavn</td>
<td>
<input type="text" name="etternavn" />
</td>
</tr>

<tr>
<td>E-postadresse</td>
<td>
<input type="text" name="email" />
</td>
</tr>

<tr>
<td>Adresse</td>
<td>
<input type="text" name="adresse" />
</td>
</tr>

<tr>
<td>Postnr</td>
<td>
<input type="text" name="postnr" onchange="valider_postnr();" />
</td>
<td><div id="feilPostnr">*</div></td>
</tr>

<tr>
<td>Poststed</td>
<td>
<input type="text" name="poststed" readonly="true" />
</td>
<td><div id="feilPoststed">*</div></td>
</tr>

<tr>
<td>Ønsket passord</td>
<td>
<input type="password" name="pw1" />
</td>
</tr>

<tr>
<td>Bekreft passord</td>
<td>
<input type="password" name="pw2" />
</td>
</tr>

</table>

<br />
<input type="submit" name="regg" value="Registrer" />

</fieldset>
</form>

(...........)

 

 

 

Litt lang kode men. Sikkert bare en filleting, men jeg klarer ikke å se det :(

 

EDIT: La kode i spoiler.

Endret av Lars-H
Lenke til kommentar
Videoannonse
Annonse

Har du sett om konsollen i nettleseren din gir deg noen feilmeldinger? Litt usikker på hvordan du ser dette i alle nettlesere.

 

Og, du er sikkert klar over at det er veldig dumt å validere data med JavaScript, med mindre du har noe på serversiden å falle tilbake på hvis brukeren har deaktivert JS.

Lenke til kommentar

Prøvde den konsollen nå. Visste ikke hva det var til før nå :p

Den viser:

"valider_postnr is not defined @ http://<url til siden>/registrer.php:1"

ved postnrfunksjonen, og

"valider is not defined @ http://<url til siden>/registrer.php:1"

når jeg submitter. Virker som den ikke finner scriptene i det hele tatt. Er det noe feil i koden under <script>?

 

Og ja, er klar over det. Er bare for å vise at jeg kan det (noe jeg tilsynelatende ikke gjør). Skal også ha klientvalidering med regEx i PHP ;)

 

Takk for svar :)

Endret av Lars-H
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...