Avatar billede bundgaard Nybegynder
15. juni 2004 - 08:45 Der er 13 kommentarer og
1 løsning

Tjekke på form input?

Hej

Jeg har en lille form, der kalder en ASP fil og så skriver ind i databasen!

Problemet er bare, at hvis man skriver forkert data eller lign, kommer der en grim fejlside op.. kan man på nogen måde få en lille boks til at poppe op, hvis man f.eks. skriver et for kort cprnummer eller lign. I har vel forstået hva jeg mener :D
Avatar billede powernodes Nybegynder
15. juni 2004 - 08:51 #1
Du kan validerer dine felter først, inden du tillader at formen submittes.
Simpelt eks:

function validate(form) {
  if (form.cprNr.value.length != 8) {
    alert('Du skal skrive 8 karaktérer.');
    return false;
  } else {
    return true;
  }
}

<form onsubmit="return validate(this);">
...
</form>
Avatar billede powernodes Nybegynder
15. juni 2004 - 08:52 #2
... og så er der jo også 10 karaktérer i et cpr - ikke 8 som jeg skriver :)
Avatar billede bundgaard Nybegynder
15. juni 2004 - 08:54 #3
det er vel ASP kode det der? Min form ligger jo i en html fil :)
Avatar billede powernodes Nybegynder
15. juni 2004 - 09:15 #4
Det er javascript det dér :=)
Klient side only.

<script type="text/Javascript">
function validate(form) {
  if (form.cprNr.value.length != 8) {
    alert('Du skal skrive 8 karaktérer.');
    return false;
  } else {
    return true;
  }
}
</script>

og

<form onsubmit="return validate(this);">
...
</form>

That's all there is too it..bortset fra du sikkert vil ha valideret flere felter, også måske også mere "stramt".
Avatar billede bundgaard Nybegynder
15. juni 2004 - 09:19 #5
http://hashasp.mine.nu/paster/?id=494

Synes ikke det virker.. men det er nok mig, der ikke lige fatter at sætte det ind :D
Avatar billede powernodes Nybegynder
15. juni 2004 - 09:26 #6
<html>
<head>
<title>Indtast elev</title>
<script type="text/Javascript">
function validate(form) {
  if (form.cprNr.value.length != 10) {
    alert('Du skal skrive 10 karaktérer.');
    return false;
  } else {
    return true;
  }
}
</script>
</head>
<body>
<form onsubmit="return validate(this);" method="post" action="side.asp">
<table>
  <tr>
    <td><h4>CPR-nummer (I formatet 1234567890)</h4>
    <input type="text" name="cprNr"><br>
    <input type="submit"></td>
  </tr>
</table>
</form>
</body>
</html>

Du skal være opmærksom på at feltnavnet vi tjekker, skal mactche feltnavnet i javascripten.
Desuden ingen dobbelte form tags, brudte tabeller etc. :)
Avatar billede bundgaard Nybegynder
15. juni 2004 - 09:28 #7
oho.. det ser fancy ud!

jeg prøver det hurtigst muligt (dvs om 20 min ca) pausen skal jo passes ;)
Avatar billede bundgaard Nybegynder
15. juni 2004 - 09:58 #8
http://hashasp.mine.nu/paster/?id=495

Det virker stadig ikke :(
Avatar billede powernodes Nybegynder
15. juni 2004 - 10:12 #9
Har du ikke prøvet mit eksempel?
Avatar billede powernodes Nybegynder
15. juni 2004 - 10:22 #10
Du skal kun have én form - du åbner en for for hvert felt.
Avatar billede powernodes Nybegynder
15. juni 2004 - 10:26 #11
<html>
<head>
<title>Indtast elev</title>
<script type="text/Javascript">
function validate(form) {
  if (form.cprnummer.value.length != 10) {
    alert('Du skal skrive 10 karaktérer.');
    form.cprnummer.focus();
    return false;
  }
  if (form.fornavn.value == "") {
    alert('Du skal udfyldet fornavn');
    form.fornavn.focus();
    return false;
  } // osv. til alle dine felter er valideret
  else { // til sidst kører du en return true;
    return true;
  }
}
</script>
</head>
<body>
<form onsubmit="return validate(this);" method="post" action="elev.asp">
<table>
<tr>
  <td>
  <br>
  <h4>CPR-nummer (I formatet 1234567890)</h4>
  <input type="text" name="cprnummer">
  <td>



  <td>
  <br>
  <h4>Fornavn</h4>
  <input type="text" name="fornavn">
  <td>

</tr>

<tr>
  <td>
  <br>
  <h4>Mellemnavn (Kan udelades)</h4>
  <input type="text" name="mellemnavn">
  <td>


  <td>
  <br>
  <h4>Efternavn</h4>
  <input type="text" name="efternavn">
  <td>

</tr>

<tr>
  <td>
  <br>
  <h4>Gadenavn</h4>
  <input type="text" name="gade">
  <td>


  <td>
  <br>
  <h4>Husnummer</h4>
  <input type="text" name="husnummer">
  <td>

</tr>

<tr>
  <td>
  <br>
  <h4>Postnummer</h4>
  <input type="text" name="postnummer">
  <td>


  <td>
  <br>
  <h4>Bynavn</h4>
  <input type="text" name="bynavn">
  <td>

</tr>

<tr>
  <td>
  <br>
  <h4>Telefonnummer</h4>
  <input type="text" name="telefon">
  <td>


  <td>
  <br>
  <h4>Mobiltelefonnummer</h4>
  <input type="text" name="mobiltelefon">
  <td>

</tr>

<tr>
  <td>
  <br>
  <h4>Email (kan udelades)</h4>
  <input type="text" name="email">
  <td>


  <td>
  <br>
  <h4>Blok</h4>
  <input type="text" name="blok">
  <td>

</tr>

</table>

<br>
<input type="submit" value="Gem elev">
</form>

</body>
</html>


Btw. - Husk at lukke dine <td> med </td>.
Avatar billede bundgaard Nybegynder
15. juni 2004 - 10:33 #12
Okay, nu popper den da op, hvis CPR nummer er under 10 :)

Men den overfører ingen værdi til ASP filen.. det gjorde den før, der kom alt det her på! :/
Avatar billede bundgaard Nybegynder
15. juni 2004 - 10:35 #13
Nu virker det

  <h4>CPR-nummer (I formatet 1234567890)</h4>
  <input type="text" name="cprnummer">
  <td>


Den skal hedde name="cpr-nummer"> :) Jeg takker mange gange for hjælpen! Smider du lige et svar? =)
Avatar billede powernodes Nybegynder
15. juni 2004 - 10:37 #14
Jeps :)
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