Avatar billede tilbageblik Nybegynder
13. november 2003 - 03:02 Der er 7 kommentarer og
1 løsning

Valideringsproblem i html-formular

Halløj :)

Jeg har nu siddet og stirret på koden nedenfor i et godt stykke tid, og jeg kan ikke gennemskue, hvorfor felterne (NB! ikke alle felter) ikke bliver kontrolleret, når der trykkes på "Send" i formularen...

Adressen på formmail-script, modtager-/afsender-adresse osv. kendes naturligvis af mig ;)

Et hurtigt og fyldestgørende svar til en uerfaren programmør modtages med stor, stor taknemmelighed! Pointsummen sætter jeg til 60 af den simple grund, at det haster :)

KODE:
**********
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>|| Online Registrering ||</title>

<script language="javascript">
    function valider()
    {
        {felt1 = document.form.felt1.value;
            if (felt1.length < 5)
                {alert("Fejl i felt 1!");
                document.form.felt1.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt2 = document.form.felt2.value;
            if (felt2.length < 5)
                {alert("Fejl i felt 2!");
                document.form.felt2.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt4 = document.form.felt4.value;
            if (felt4.length < 4)
                {alert("Fejl i felt 4!");
                document.form.felt4.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt5 = document.form.felt5.value;
            if (felt5.length < 2)
                {alert("Fejl i felt 5!");
                document.form.felt5.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt6 = document.form.felt6.value;
            if (felt6.length < 8)
                {alert("Fejl i felt 6!");
                document.form.felt6.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt8 = document.form.felt8.value;
            if (felt8.length < 8)
                {alert("Fejl i felt 8!");
                document.form.felt8.focus();
                window.event.returnValue = false;
            return false;}
        }
    }
</script>
   
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 8pt;">
<h3>Online Registrering (udkast)</h3>

<h5 style="color:red;">Felter med * skal udfyldes!</h5>

<form action="..." method="post" onsubmit="valider();">
<input type="hidden" name="recipient" value="modtager@domæne.dk">
<input type="hidden" name="fromaddress" value="afsender@domæne.dk">
<input type="hidden" name="subject" value="online-registrering">
<input type="hidden" name="redirect" value="...">
<input type="hidden" name="orderby" value="felt1,felt2,felt3,felt4,felt5,felt6,felt7,felt8">
                   
        Felt 1 :<br>
            <input type="text" name="felt1" size="30"><font color="red">*</font><br><br>

        Felt 2 :<br>
            <input type="text" name="felt2" size="30"><font color="red">*</font><br><br>
       
        Felt 3 :<br>
            <input type="text" name="felt3" size="20"><br><br>
       
        Felt 4 :<br>
            <input type="text" name="felt4" maxlength="4" size="4"><font color="red">*</font><br><br>
       
        Felt 5 :<br>
            <input type="text" name="felt5" size="20"><font color="red">*</font><br><br>
       
        Felt 6 :<br>
            <input type="text" name="felt6" maxlength="8" size="8"><font color="red">*</font>(ingen mellemrum)<br><br>
       
        Felt 7 :<br>
            <input type="text" name="felt7" size="30"><br><br>
       
        Kørekortnummer :<br>
            <input type="text" name="felt8" maxlength="8" size="8"><font color="red">*</font>(ingen mellemrum)<br><br>
           
            <br><br>
       
        <input type="submit" value="Send" name="submit" style="font-family: verdana, helvetica, sans-serif; font-size: 8pt;">
        <input type="reset" value="Reset" style="font-family: verdana, helvetica, sans-serif; font-size: 8pt;">
    </form>

</body>
</html>
**********
Avatar billede tilbageblik Nybegynder
13. november 2003 - 03:11 #1
Tilføjelse: Istedet for "Kørekortnummer" skal der - i dette testtilfælde - naturligvis stå "Felt 8" på den pågældende linie. Min fejl ;) - Det er sq sent på natten...
Avatar billede casper_skovgaard Nybegynder
13. november 2003 - 09:24 #2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>|| Online Registrering ||</title>

<script language="javascript">
    function valider()
    {
        {felt1 = document.forms[0].felt1.value;
            if (felt1.length < 5)
                {alert("Fejl i felt 1!");
                document.form.felt1.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt2 = document.forms[0].felt2.value;
            if (felt2.length < 5)
                {alert("Fejl i felt 2!");
                document.form.felt2.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt4 = document.forms[0].felt4.value;
            if (felt4.length < 4)
                {alert("Fejl i felt 4!");
                document.form.felt4.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt5 = document.forms[0].felt5.value;
            if (felt5.length < 2)
                {alert("Fejl i felt 5!");
                document.form.felt5.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt6 = document.forms[0].felt6.value;
            if (felt6.length < 8)
                {alert("Fejl i felt 6!");
                document.form.felt6.focus();
                window.event.returnValue = false;
            return false;}
        }
        {felt8 = document.forms[0].felt8.value;
            if (felt8.length < 8)
                {alert("Fejl i felt 8!");
                document.form.felt8.focus();
                window.event.returnValue = false;
            return false;}
        }
                document.forms[0].submit();
    }
</script>
   
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 8pt;">
<h3>Online Registrering (udkast)</h3>

<h5 style="color:red;">Felter med * skal udfyldes!</h5>

<form action="..." method="post" >
<input type="hidden" name="recipient" value="modtager@domæne.dk">
<input type="hidden" name="fromaddress" value="afsender@domæne.dk">
<input type="hidden" name="subject" value="online-registrering">
<input type="hidden" name="redirect" value="...">
<input type="hidden" name="orderby" value="felt1,felt2,felt3,felt4,felt5,felt6,felt7,felt8">
                   
        Felt 1 :<br>
            <input type="text" name="felt1" size="30"><font color="red">*</font><br><br>

        Felt 2 :<br>
            <input type="text" name="felt2" size="30"><font color="red">*</font><br><br>
       
        Felt 3 :<br>
            <input type="text" name="felt3" size="20"><br><br>
       
        Felt 4 :<br>
            <input type="text" name="felt4" maxlength="4" size="4"><font color="red">*</font><br><br>
       
        Felt 5 :<br>
            <input type="text" name="felt5" size="20"><font color="red">*</font><br><br>
       
        Felt 6 :<br>
            <input type="text" name="felt6" maxlength="8" size="8"><font color="red">*</font>(ingen mellemrum)<br><br>
       
        Felt 7 :<br>
            <input type="text" name="felt7" size="30"><br><br>
       
        Kørekortnummer :<br>
            <input type="text" name="felt8" maxlength="8" size="8"><font color="red">*</font>(ingen mellemrum)<br><br>
           
            <br><br>
       
        <input type="button" value="Send" name="submit" style="font-family: verdana, helvetica, sans-serif; font-size: 8pt;" onclick="valider()">
        <input type="reset" value="Reset" style="font-family: verdana, helvetica, sans-serif; font-size: 8pt;">
    </form>

</body>
</html>
Avatar billede casper_skovgaard Nybegynder
13. november 2003 - 09:25 #3
for at få værdien af et felt skal du skrive fx. document.forms[0].felt8.value
Avatar billede tilbageblik Nybegynder
13. november 2003 - 22:36 #4
@ casper :
Jeg har nu tilføjet dine kommentarer ("...forms[0]...") i det egentlige html-dokument, men valideringen sker stadig ikke..? Altså, oplysningerne bliver alligevel sendt afsted fra formularen til modtager-adressen.

Er der ikke en knag derude bag skærmene, der lige kan få det hele til at gå op i en højere enhed for mig? :)
Avatar billede macho Praktikant
14. november 2003 - 01:16 #5
Jeg har netop afprøvet casper's input (copy and paste) og valideringen virker helt perfekt hos mig!

mvh
Macho
Avatar billede tilbageblik Nybegynder
14. november 2003 - 01:30 #6
@ macho :
Touché, du har så ganske ret ;) Jeg lavede en lille bøf, som afstedkom, at det ikke virkede i første omgang. Så mangler vi blot, at casper melder sig her med et "svar", så han kan få sine point :)

Mange tak herfra til jer begge ;)
Avatar billede casper_skovgaard Nybegynder
14. november 2003 - 08:37 #7
og her er svaret :)
Avatar billede tilbageblik Nybegynder
14. november 2003 - 08:44 #8
...tak for hjælpen ;)
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