Avatar billede compac Seniormester
03. juni 2009 - 14:11 Der er 3 kommentarer og
1 løsning

Validering af inputfelter

Ved validering af mine inputfelter går den straks videre til næste side når man har sagt OK til den sidste fejlmeddelelse.  Det er meningen, den skal blive på siden indtil inputtet er korrekt.
Hvad er galt?



<script type="text/javascript">

function tjek()      {
if (document.opskrift.ingridenser.value == ""){
    alert("Du skal udfylde ingridenser i opskriften.");
    document.opskrift.ingridenser.focus();
    return false;
  }
  if (document.opskrift.kulhydrater.value=="" || !document.opskrift.kulhydrater.value.match(/^\d*([\.,]\d+)?$/)) {
      alert("Kun tal i dette felt.");
      document.opskrift.kulhydrater.value.focus();
      return false;
    }
    else {
      return true;
    }
  }
</script> 
</head>
<body>
<?php
include("conn.php");
?>
<form  name="opskrift" method="POST" action="opskriftsubmit.php" onSubmit="return tjek();">
<textarea cols="70" rows="5" name="ingridenser"  wrap="viritual" value="<?= $_POST['ingridenser']; ?>"></textarea><br>
<input size="10" type="text" name="kulhydrater" value="<?=$_POST['kulhydrater']; ?>">
<input name="annuller" value="Annuller" type="reset">&nbsp;&nbsp;&nbsp;
<input name="submit" value="&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;" type="submit">
</form>
Avatar billede erikjacobsen Ekspert
03. juni 2009 - 14:28 #1
Ikke
    document.opskrift.kulhydrater.value.focus();
men
    document.opskrift.kulhydrater.focus();

Og så bør du bruge document.getElementById(...), med id-er på felterne - det virker i alle browsere.
Avatar billede compac Seniormester
03. juni 2009 - 15:29 #2
Jeg tænkte nok at det kun var en bagatel.
Jeg har prøvet med getElementByld - men jeg er ikke sikker på at det er rigtigt: (jeg har pillet det ene inputfelt ud).

<script type="text/javascript">
function tjek()      {
  if (document.getElementByld('kulhydrater').value=="" || !document.getElementByld('kulhydrater').value.match(/^\d*([\.,]\d+)?$/)) {
      alert("Kun tal i dette felt.");
      document.getElementByld('kulhydrater').focus();
      return false;
    }
    else {
      return true;
    }
  }
</script> 
</head>
<body>
<?php
include("conn.php");
?>
<form  name="opskrift" method="POST" action="opskriftsubmit.php" onSubmit="return tjek();">
<input size="10" type="text" id="kulhydrater" value="<?=$_POST['kulhydrater']; ?>">
<input name="annuller" value="Annuller" type="reset">&nbsp;&nbsp;&nbsp;
<input name="submit" value="&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;" type="submit">
</form>
Avatar billede erikjacobsen Ekspert
03. juni 2009 - 19:38 #3
Det ser rigtigt ud. Du kan forkorte det lidt:

function tjek()      {
  var kul = document.getElementByld('kulhydrater')
  if (kul.value=="" || !kul.value.match(/^\d*([\.,]\d+)?$/)) {
      alert("Kun tal i dette felt.");
      kul.focus();
      return false;
    }
    else {
      return true;
    }
  }
Avatar billede compac Seniormester
05. oktober 2009 - 14:52 #4
lukker
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