Avatar billede nordclc Nybegynder
17. november 2008 - 22:57 Der er 5 kommentarer og
1 løsning

Find fejl i meget lille kode (validering)

Hvis jeg trykker tilmeld uden at udfylde nogle felter, så stopper valideringen ikke ved fejl i medlemsnr, men fortsætter valideringen og kommer med en fejl på tlf.

Det er sikkert en stavefejl, men jeg har set mig blind på koden!

//Nordclc


<html>
<head>

<script language='javascript'>
<!--
function validering()
    {
        var err = 0;

        if(((document.eventform.medlemsnr.value == "") || (document.eventform.medlemsnr.value == null)) && (err = 0))
            {
                err = 1;
                alert("Medlemsnr. skal udfyldes!");
                document.eventform.medlemsnr.focus();
            }

        if (isNaN(parseInt(document.eventform.medlemsnr.value)) && (err == 0))
            {
                err = 1;
                  alert("Ugyldig medlemsnr. indtastet!");
                  document.eventform.medlemsnr.focus();
            }
         
        if((document.eventform.tlf.value == "") && (err = 0))
            {
                err = 1;
                alert("Tlf.nr. skal udfyldes!");
                document.eventform.tlf.focus();
            }

        if (isNaN(parseInt(document.eventform.tlf.value)) && (err == 0))
            {
                err = 1;
                  alert("Ugyldig tlf. indtastet!");
                  document.eventform.tlf.focus();
            }

         
        if (err == 0)
          {           
            alert("OK")
          }
        }
//-->
</script>

</head>
<body>     
<form method='POST' name='eventform' actions='event_post.asp?key=4'>
Medlemsnr.<br>
<input type='text' name='medlemsnr' size='10' tabindex='1'><br>&nbsp;<br>
Tlf.nr.<br>
<input type='text' name='tlf' size='10' tabindex='8'><br>&nbsp;<br>
<input type='button' value='Tilmeld' style='cursor=hand' onClick='return validering();return false;'>
</form>

</body>
</html>
Avatar billede w13 Novice
17. november 2008 - 23:08 #1
Du har skrevet:

if((document.eventform.tlf.value == "") && (err = 0))

og ikke:

if((document.eventform.tlf.value == "") && (err == 0))

Og du har skrevet style="cursor=hand" hvilket skal være style="cursor:pointer" for at virke i alle browsere.

Desuden mangler du en doctype og jeg ville nok flytte valideringen op på en onsubmit på formen, i tilfælde af at der trykkes enter i stedet for på Tilmeld-knappen.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<script type="text/javascript">
function validering()
    {
        if(document.eventform.medlemsnr.value == "")
            {
                alert("Medlemsnr. skal udfyldes!");
                document.eventform.medlemsnr.focus();
                return false;
            }

        if (isNaN(parseInt(document.eventform.medlemsnr.value)))
            {
                alert("Ugyldig medlemsnr. indtastet!");
                document.eventform.medlemsnr.focus();
                return false;
            }
         
        if (document.eventform.tlf.value == "")
            {
                alert("Tlf.nr. skal udfyldes!");
                document.eventform.tlf.focus();
                return false;
            }

        if (isNaN(parseInt(document.eventform.tlf.value)))
            {
                alert("Ugyldig tlf. indtastet!");
                document.eventform.tlf.focus();
                return false;
            }
           
            return true;
        }
</script>

</head>
<body>     
<form method='post' name='eventform' actions='event_post.asp?key=4' onsubmit="return validering()">
Medlemsnr.<br>
<input type='text' name='medlemsnr' size='10' tabindex='1'><br>&nbsp;<br>
Tlf.nr.<br>
<input type='text' name='tlf' size='10' tabindex='8'><br>&nbsp;<br>
<input type='submit' value='Tilmeld' style='cursor: pointer'>
</form>

</body>
</html>
Avatar billede nordclc Nybegynder
17. november 2008 - 23:17 #2
Hej w13, du har jo ret - fantastisk.

Tusind tak for den hurtige hjælp ;o)

Mvh
Nordclc
Avatar billede w13 Novice
17. november 2008 - 23:24 #3
Og tak for points! :)
Avatar billede roenving Novice
18. november 2008 - 09:55 #4
-- og for lige at gøre det helt færdigt kan du ligesågodt medsende referencen fra form-objektet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<script type="text/javascript">
function validering(f)
    {
        if(f.medlemsnr.value == "")
            {
                alert("Medlemsnr. skal udfyldes!");
                f.medlemsnr.focus();
                return false;
            }

        if (isNaN(parseInt(f.medlemsnr.value)))
            {
                alert("Ugyldig medlemsnr. indtastet!");
                f.medlemsnr.focus();
                return false;
            }
         
        if (f.tlf.value == "")
            {
                alert("Tlf.nr. skal udfyldes!");
                f.tlf.focus();
                return false;
            }

        if (isNaN(parseInt(f.tlf.value)))
            {
                alert("Ugyldig tlf. indtastet!");
                f.tlf.focus();
                return false;
            }
           
            return true;
        }
</script>

</head>
<body>     
<form method='post' name='eventform' actions='event_post.asp?key=4' onsubmit="return validering(this)">
Medlemsnr.<br>
<input type='text' name='medlemsnr' size='10' tabindex='1'><br>&nbsp;<br>
Tlf.nr.<br>
<input type='text' name='tlf' size='10' tabindex='8'><br>&nbsp;<br>
<input type='submit' value='Tilmeld' style='cursor: pointer'>
</form>

</body>
</html>
Avatar billede roenving Novice
18. november 2008 - 09:57 #5
Ups, og så hedder det action _uden_ s ...

<form method='post' name='eventform' action='event_post.asp?key=4' onsubmit="return validering(this);">
Avatar billede nordclc Nybegynder
18. november 2008 - 10:27 #6
Jeg bukker og siger mange tak, nu virker det som det skal ;o)

Mvh
Nordclc
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

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