Avatar billede htx98i17 Professor
31. juli 2001 - 15:33 Der er 44 kommentarer og
3 løsninger

Validering af form

Hej

først spm fra mig i javascriptkategorien :) (jeg er nybegynder)
Jeg er PHP-mand så det kan godt ske at min js-kode bærer præg af det :)

Jeg har en function der onSubmit skal validere min form. Det der skal ske, er at hvis en af felterne ikke er udfyldt, så skal der afbrydes for \"submittelsen\" (noget break agtigt noget).

Samtidig er feltet \"payment\" af typen \"radio\" som ikke vil reagere på if(formPayment == \'\') {, hvad kan jeg gøre det ved?

så der er 2 spm, \"radio\"-problemet og \"bread\"-problemet!

Her er min kode:

<script language=\"javascript\" >
       
        function tjekinput() {
       
            formPayment = document.orderarticles.payment.value;
            formFirma = document.orderarticles.firma.value;
            formFornavn = document.orderarticles.fornavn.value;
            formEfternavn = document.orderarticles.efternavn.value;
            formAdresse = document.orderarticles.adresse.value;
            formPostnr = document.orderarticles.postnr.value;
            formTlf = document.orderarticles.tlf.value;
            formBy = document.orderarticles.by.value;
            formEmail = document.orderarticles.email.value;
            formKommentar = document.orderarticles.kommentar.value;
           
                if(formPayment == \'\') {
                    alert(\'Betalingsmetode\');
                } else {
                    if(formFornavn == \'\') {
                        alert(\'Fornavn\');
                    } else {
                        if(formEfternavn == \'\') {
                            alert(\'Efternavn\');
                        } else {
                            if(formAdresse == \'\') {
                                alert(\'Adresse\');
                            } else {
                                if(formPostnr == \'\') {
                                    alert(\'Postnummer\');
                                } else {
                                    if(formBy == \'\') {
                                        alert(\'By\');
                                    } else {
                                        if(formTlf == \'\') {
                                            alert(\'Telefon\');
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
        }
   
    </script>
Avatar billede zeptic Nybegynder
31. juli 2001 - 15:37 #1
du skal have den til at returnere false såfremt du ikke ønsker at der skal submittes.

dvs. onsubmit=\"java script:return tjekinput()\"

i hver af dine if-sætninger skal du returnere false og til sidst i tjekinput skal du returnere true.
Avatar billede roenving Novice
31. juli 2001 - 15:46 #2
...
og så vil du gøre dig selv en tjeneste ved ikke at neste dine if\'s, så det bliver:

                if(formPayment == \'\') {
                    alert(\'Betalingsmetode\');
                    return false;
                }
                if(formFornavn == \'\') {
                    alert(\'Fornavn\');
                    return false;
                }
                if(formEfternavn == \'\') {
                    alert(\'Efternavn\');
                    return false;
                }
                if(formAdresse == \'\') {
                    alert(\'Adresse\');
                    return false;
                }
                if(formPostnr == \'\') {
                    alert(\'Postnummer\');
                    return false;
                }
                if(formBy == \'\') {
                    alert(\'By\');
                    return false;
                }
                if(formTlf == \'\') {
                    alert(\'Telefon\');
                    return false;
                }

Det med value af Payment-feltet:
har dine options en defineret value-property ??

Ellers kan du bruge .selectedIndex, som du kan teste for, om den er 0 eller større

hth
jes
Avatar billede htx98i17 Professor
31. juli 2001 - 15:49 #3
nu ser min kode sådan ud:

<script language=\"javascript\" >
       
        function tjekinput() {
       
            formPayment = document.orderarticles.payment.value;
            formFirma = document.orderarticles.firma.value;
            formFornavn = document.orderarticles.fornavn.value;
            formEfternavn = document.orderarticles.efternavn.value;
            formAdresse = document.orderarticles.adresse.value;
            formPostnr = document.orderarticles.postnr.value;
            formTlf = document.orderarticles.tlf.value;
            formBy = document.orderarticles.by.value;
            formEmail = document.orderarticles.email.value;
            formKommentar = document.orderarticles.kommentar.value;
           
                if(formPayment == \'\') {
                    alert(\'Betalingsmetode\');
                    return FALSE;
                } else {
                    if(formFornavn == \'\') {
                        alert(\'Fornavn\');
                        return FALSE;
                    } else {
                        if(formEfternavn == \'\') {
                            alert(\'Efternavn\');
                            return FALSE;
                        } else {
                            if(formAdresse == \'\') {
                                alert(\'Adresse\');
                                return FALSE;
                            } else {
                                if(formPostnr == \'\') {
                                    alert(\'Postnummer\');
                                    return FALSE;
                                } else {
                                    if(formBy == \'\') {
                                        alert(\'By\');
                                        return FALSE;
                                    } else {
                                        if(formTlf == \'\') {
                                            alert(\'Telefon\');
                                            return FALSE;
                                        } else {
                                            return TRUE;   
                                        }
                                    }   
                                }
                            }
                        }
                    }
                }
        }
   
    </script>

og i formen sådan:

<form method=\"post\" action=\"index.php?a2=order\" name=\"orderarticles\" onSubmit=\"return tjekinput()\" >

Jeg bliver nødt til at skal have noget mere hjælp :)
Avatar billede htx98i17 Professor
31. juli 2001 - 15:50 #4
roenving -> får jeg så ikke en alert for hver fejl der er? altså hvis jeg nu mangler at udfylde 3 felter, så vil jeg kun have een alert  og ikke 3...
Avatar billede htx98i17 Professor
31. juli 2001 - 15:52 #5
min payment har en value, der er 4 radiofelter hvor values er enten dankort,post,konto eller check
Avatar billede jakoba Nybegynder
31. juli 2001 - 15:58 #6
et lille trick:

lav en lille extra funktion foran din  tjekinput()  funktion:

function nogo( felt ) {
    alert( \"Der skal stå noget i feltet \" +felt.name );
    felt.focus();          // såt focus så feltet er klar til at skrive i
    return false
}; //end nogo( formelement objekt ) -> false


function tjekinput() {

    var frm = document.orderarticles; // kortere end at skrive det hver gang
    if ( (formPayment = frm.payment.value) == \"\") return nogo( frm.payment );
    if ( (formFirma  = frm.firma.value) == \"\") return nogo( frm.firma );
    if ( (formFornavn = frm.fornavn.value == \"\") return nogo( frm.fornavn );
    if ( (formEfternavn = frm.efternavn.value == \"\") return nogo( frm.efternavn );
// og så videre
//  ...
// til allersidst:
    return true;    // hvis alle tests gik godt
}
Avatar billede roenving Novice
31. juli 2001 - 16:01 #7
>>> htx98i17

Nej, du får kun een alert, for return betyder at funktionen returnerer til kaldet med false-værdien.

;-]
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:04 #8
Radioknapper testes anderledes:

    if ( (formPayment = frm.payment.value) == \"\") return nogo( frm.payment );
skiftes ud med de 3 linier:
    var i;
    for (i=0; i<frm.payment.length; i++) if ( frm.payment.checked ) break;
    if ( i>=frm.payment.length ) return nogo( frm.payment );

Avatar billede htx98i17 Professor
31. juli 2001 - 16:07 #9
jacoka, jeg er lidt i tvivl om hvordan det der return nogo(frm.noget) virker..

Følgende virker nu, men jeg vil gerne om jeg kan komme til at forstå det jakoba mener

<script language=\"javascript\" >
       
        function tjekinput() {
       
            var frm = document.orderarticles;
           
            formPayment = frm.payment.value;
            formFirma = frm.firma.value;
            formFornavn = frm.fornavn.value;
            formEfternavn = frm.efternavn.value;
            formAdresse = frm.adresse.value;
            formPostnr = frm.postnr.value;
            formTlf = frm.tlf.value;
            formBy = frm.by.value;
            formEmail = frm.value;
            formKommentar = frm.value;
           
                if(formPayment == \'\') {
                    alert(\'Betalingsmetode\');
                    return false;
                }
                if(formFornavn == \'\') {
                    alert(\'Fornavn\');
                    return false;
                }
                if(formEfternavn == \'\') {
                    alert(\'Efternavn\');
                    return false;
                }
                if(formAdresse == \'\') {
                    alert(\'Adresse\');
                    return false;
                }
                if(formPostnr == \'\') {
                    alert(\'Postnummer\');
                    return false;
                }
                if(formBy == \'\') {
                    alert(\'By\');
                    return false;
                }
                if(formTlf == \'\') {
                    alert(\'Telefon\');
                    return false;
                }


        }
   
    </script>
Avatar billede zeptic Nybegynder
31. juli 2001 - 16:11 #10
det jakoba siger er bare, at du kan håndtere alle fejlmeddelelserne samme sted. på den måde kan du slippe for en del indtastninger og få koden til at se lidt pænere ud.
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:12 #11
nogo funktionen samler blot de ting der skal gøres ved enhver fejl så man slipper for at skrive det igen og igen. og slutter så af med at returnere false.

ellers virker det præcis ligesom roenving\'s.

husk på det felt der hedder payment og er radioknapper. det skal testes anderledes  (Kommentar fra jakoba 31/07 2001 16:04:15)

mvh JakobA
Avatar billede htx98i17 Professor
31. juli 2001 - 16:16 #12
så det i mener er at jeg skal lave alle if-sætninger om til:

if(formNoget == \'\') {
                    nogo();
                    }

?
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:19 #13
if(formNoget == \'\') return nogo( frm.Noget );

hvor  Noget  er navnet på det felt
Avatar billede htx98i17 Professor
31. juli 2001 - 16:28 #14
Jeg er på herrens mark,

Er dette helt forkert?

<script language=\"javascript\" >
       
        function nogo(form.name) {
            alert( \"Udfyld venligst feltet\" + form.name );
            form.focus();
            return false
        }
       
        function tjekinput() {
       
            var frm = document.orderarticles;
           
            formPayment = frm.payment.value;
            formFirma = frm.firma.value;
            formFornavn = frm.fornavn.value;
            formEfternavn = frm.efternavn.value;
            formAdresse = frm.adresse.value;
            formPostnr = frm.postnr.value;
            formTlf = frm.tlf.value;
            formBy = frm.by.value;
            formEmail = frm.value;
            formKommentar = frm.value;
           
              if(formFirma == \'\') return nogo(form.Firma);
              if(formFornavn == \'\') return nogo(form.Fornavn);
              if(formEfternavn == \'\') return nogo(form.Efternavn);
              if(formAdresse == \'\') return nogo(form.Adresse);
              if(formPostnr == \'\') return nogo(form.Postnr);
              if(formTlf == \'\') return nogo(form.Tlf);
              if(formBy == \'\') return nogo(form.By);
                 
        }
   
    </script>
Avatar billede htx98i17 Professor
31. juli 2001 - 16:30 #15
hov, jeg skal jo kalde det frm og ikke form
nu er det sådan

<script language=\"javascript\" >
       
        function nogo(frm.name) {
            alert( \"Udfyld venligst feltet\" + frm.name );
            frm.focus();
            return false
        }
       
        function tjekinput() {
       
            var frm = document.orderarticles;
           
            formPayment = frm.payment.value;
            formFirma = frm.firma.value;
            formFornavn = frm.fornavn.value;
            formEfternavn = frm.efternavn.value;
            formAdresse = frm.adresse.value;
            formPostnr = frm.postnr.value;
            formTlf = frm.tlf.value;
            formBy = frm.by.value;
            formEmail = frm.value;
            formKommentar = frm.value;
           
              if(formFirma == \'\') return nogo(frm.Firma);
              if(formFornavn == \'\') return nogo(frm.Fornavn);
              if(formEfternavn == \'\') return nogo(frm.Efternavn);
              if(formAdresse == \'\') return nogo(frm.Adresse);
              if(formPostnr == \'\') return nogo(frm.Postnr);
              if(formTlf == \'\') return nogo(frm.Tlf);
              if(formBy == \'\') return nogo(frm.By);
                 
        }
   
    </script>
Avatar billede roenving Novice
31. juli 2001 - 16:31 #16
Hvis du så vil have en speciel måde at henvise til felterne, f.eks. med den label du har ved feltet, kan du udvide jakoba\'s funktion til:

function nogo( felt, label ) {
    alert( \"Der skal stå noget i feltet \" +label );
    felt.focus();          // såt focus så feltet er klar til at skrive i
    return false
}; //end nogo( formelement objekt ) -> false

og så kalde dem med f.eks.:

if(formPostnr == \'\') return nogo( frm.postnr, \'Postnummer\' );

hth
jes
Avatar billede htx98i17 Professor
31. juli 2001 - 16:35 #17
den ser sådan ud nu og den kommer ikke med nogen alert :(

<script language=\"javascript\" >
       
        function nogo(frm.name) {
            alert( \"Udfyld venligst feltet\" + frm.name );
            frm.name.focus();
            return false
        }
       
        function tjekinput() {
       
            var frm = document.orderarticles;
           
            formPayment = frm.payment.value;
            formFirma = frm.firma.value;
            formFornavn = frm.fornavn.value;
            formEfternavn = frm.efternavn.value;
            formAdresse = frm.adresse.value;
            formPostnr = frm.postnr.value;
            formTlf = frm.tlf.value;
            formBy = frm.by.value;
            formEmail = frm.value;
            formKommentar = frm.value;
           
              if(formFirma == \'\') return nogo(frm.firma);
              if(formFornavn == \'\') return nogo(frm.fornavn);
              if(formEfternavn == \'\') return nogo(frm.efternavn);
              if(formAdresse == \'\') return nogo(frm.adresse);
              if(formPostnr == \'\') return nogo(frm.postnr);
              if(formTlf == \'\') return nogo(frm.tlf);
              if(formBy == \'\') return nogo(frm.by);
                 
        }
   
    </script>
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:35 #18
Det er ihvertfald godt på vej.
men navnet på firmafeltet er  firma  med lille f  så det skal det også der hvor du kalder nogo.
og der skal stå  frm  foran istedet for  form  (væk med o\'et).
          if(formFirma == \'\') return nogo(frm.firma);
ligesådan med de andre felter.

ved email og kommentaar har du glemt feltnavnet. det skal være

            formEmail = frm.email.value;
            formKommentar = frm.kommentar.value;

og de to skal vel også have en if.
Avatar billede htx98i17 Professor
31. juli 2001 - 16:38 #19
jeps jakoba, jeg har rettet det med store og små bogstaver som i mit sisdste eksempel,

mht email og kommentar, så er det ikke påkrævet at blive udfyldt, det er bare mig der ik har fået de to slettet fra koden, sorry...

mit sidste eksempel virker ik lige,?
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:40 #20
det test vi bruger her er til tekstfelter.

du snakkede om at feltet payment i virkeligheden var radioknapper.
Det felt skal testes anderledes.
Avatar billede htx98i17 Professor
31. juli 2001 - 16:42 #21
ok jakoba, jeg ville vente ldit med den anderledes test for payment, til jeg havde fået de andre felter til at virke, men vi kan godt prøve det nu...
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:44 #22
næe, det var da en fornuftig ide.
hvis du fjerner linierne med email og kommentar felt skulle det også virke nu.
Avatar billede htx98i17 Professor
31. juli 2001 - 16:45 #23
hehe jakoba, jeg håber du har lidt tålmodighed endnu for dette virker ikke :))

<script language=\"javascript\" >
       
        function nogo(frm.name) {
            alert( \"Udfyld venligst feltet\" + frm.name );
            frm.name.focus();
            return false
        }
       
        function tjekinput() {
       
            var frm = document.orderarticles;
           
            formPayment = frm.payment.value;
            formFirma = frm.firma.value;
            formFornavn = frm.fornavn.value;
            formEfternavn = frm.efternavn.value;
            formAdresse = frm.adresse.value;
            formPostnr = frm.postnr.value;
            formTlf = frm.tlf.value;
            formBy = frm.by.value;
               
                var i;
                for(i=0; i<frm.payment.length; i++) if ( frm.payment.checked ) break;
                if(i>=frm.payment.length ) return nogo( frm.payment );
              if(formFirma == \'\') return nogo(frm.firma);
              if(formFornavn == \'\') return nogo(frm.fornavn);
              if(formEfternavn == \'\') return nogo(frm.efternavn);
              if(formAdresse == \'\') return nogo(frm.adresse);
              if(formPostnr == \'\') return nogo(frm.postnr);
              if(formTlf == \'\') return nogo(frm.tlf);
              if(formBy == \'\') return nogo(frm.by);
                 
        }
   
    </script>
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:47 #24
Næe for søren, den er gået galt med  nogo  funktionen:
den skal være:
      function nogo( felt ) {
            alert( \"Udfyld venligst feltet\" + felt.name );
            felt.focus();
            return false
      }
lidt endnu, (vi laver roenving\'s udvidelse bagefter :)

Avatar billede htx98i17 Professor
31. juli 2001 - 16:51 #25
jakoba -> nu alerter den med \"Udfyld venligst feltetUndefinded\"
Avatar billede htx98i17 Professor
31. juli 2001 - 16:51 #26
og koden ser sådan ud:

<script language=\"javascript\" >
       
        function nogo(felt) {
            alert( \"Udfyld venligst feltet\" + felt.name );
            felt.name.focus();
            return false
        }
       
        function tjekinput() {
       
            var frm = document.orderarticles;
           
            formPayment = frm.payment.value;
            formFirma = frm.firma.value;
            formFornavn = frm.fornavn.value;
            formEfternavn = frm.efternavn.value;
            formAdresse = frm.adresse.value;
            formPostnr = frm.postnr.value;
            formTlf = frm.tlf.value;
            formBy = frm.by.value;
               
                var i;
                for(i=0; i<frm.payment.length; i++) if ( frm.payment.checked ) break;
                if(i>=frm.payment.length ) return nogo( frm.payment );
              if(formFirma == \'\') return nogo(frm.firma);
              if(formFornavn == \'\') return nogo(frm.fornavn);
              if(formEfternavn == \'\') return nogo(frm.efternavn);
              if(formAdresse == \'\') return nogo(frm.adresse);
              if(formPostnr == \'\') return nogo(frm.postnr);
              if(formTlf == \'\') return nogo(frm.tlf);
              if(formBy == \'\') return nogo(frm.by);
                 
        }
   
    </script>
Avatar billede htx98i17 Professor
31. juli 2001 - 16:52 #27
+ at den ikke breaker submittelsen
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:52 #28
og jeg havde lavet en fejl i linien:
    for (i=0; i<frm.payment.length; i++) if ( frm.payment.checked ) break;
der skal stå:
    for (i=0; i<frm.payment.length; i++) if ( frm.payment[i].checked ) break;

Avatar billede htx98i17 Professor
31. juli 2001 - 16:53 #29
jeg forstår heller ikke hvor den får \"felt\" fra?
Avatar billede htx98i17 Professor
31. juli 2001 - 16:54 #30
ok, for-løkken er rettet:
den alerter stadig med \"Udfyld venligst feltetUndefinded\" og den breaker ikke submittelsen

<script language=\"javascript\" >
       
        function nogo(felt) {
            alert( \"Udfyld venligst feltet\" + felt.name );
            felt.focus();
            return false
        }
       
        function tjekinput() {
       
            var frm = document.orderarticles;
           
            formPayment = frm.payment.value;
            formFirma = frm.firma.value;
            formFornavn = frm.fornavn.value;
            formEfternavn = frm.efternavn.value;
            formAdresse = frm.adresse.value;
            formPostnr = frm.postnr.value;
            formTlf = frm.tlf.value;
            formBy = frm.by.value;
               
                var i;
                for (i=0; i<frm.payment.length; i++) if ( frm.payment[i].checked ) break;
                if(i>=frm.payment.length ) return nogo( frm.payment );
              if(formFirma == \'\') return nogo(frm.firma);
              if(formFornavn == \'\') return nogo(frm.fornavn);
              if(formEfternavn == \'\') return nogo(frm.efternavn);
              if(formAdresse == \'\') return nogo(frm.adresse);
              if(formPostnr == \'\') return nogo(frm.postnr);
              if(formTlf == \'\') return nogo(frm.tlf);
              if(formBy == \'\') return nogo(frm.by);
                 
        }
   
    </script>
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:56 #31
hvordan ser alle radioknapperne ud (det stykke af din htmlkode der er  payment feltet).
Avatar billede htx98i17 Professor
31. juli 2001 - 16:57 #32
det er kombineret med PHP, og det ser måske lidt rodet ud:

<tr  class=\"mainsmall\" >
                <td><input type=\"radio\" name=\"payment\" value=\"dankort\" <?php if($payment == \"dankort\" || $payment == \"dankort\" ) { print\"checked\"; } ?> onclick=\"location.href=\'?a2=paydesk&payment=dankort\'\" ></td>
                <td class=\"mainsmall\" colspan=\"2\" >Dankort. (<?php echo$dankort[data]; ?> kr.)</td>
            </tr>
            <tr  class=\"mainsmall\" >
                <td><input type=\"radio\" name=\"payment\" value=\"post\" <?php if($payment == \"opkraevning\" || $payment == \"post\" ) { print\"checked\"; } ?> onclick=\"location.href=\'?a2=paydesk&payment=opkraevning\'\" ></td>
                <td class=\"mainsmall\" colspan=\"2\" >Postopkrævning. (<?php echo$postop[data]; ?> kr. + 8 kr. som betales til postbudet.)</td>
            </tr>
            <tr  class=\"mainsmall\" >
                <td><input type=\"radio\" name=\"payment\" value=\"konto\" <?php if($payment == \"overfoersel\" || $payment == \"konto\" ) { print\"checked\"; } ?> onclick=\"location.href=\'?a2=paydesk&payment=overfoersel\'\" ></td>
                <td class=\"mainsmall\">Forudbetaling via kontooverførsel. (<?php echo$forudb[data]; ?> kr.)</td>
                <td>&nbsp;</td>
            </tr>
            <tr  class=\"mainsmall\" >   
                <td><input type=\"radio\" name=\"payment\" value=\"check\" <?php if($payment == \"check\" || $payment == \"check\") { print\"checked\"; } ?> onclick=\"location.href=\'?a2=paydesk&payment=check\'\" ></td>
                <td class=\"mainsmall\">Forudbetaling via check. (<?php echo$checkfragt[data]; ?> kr.)</td>
                <td>&nbsp;<input type=\"hidden\" name=\"fragtpris1\" value=\"<?php echo$fragtpris[data]; ?>\" ><input type=\"hidden\" name=\"finalamount\" value=\"<?php echo$finalamount; ?>\" ></td>
            </tr>
Avatar billede jakoba Nybegynder
31. juli 2001 - 16:59 #33
står der    onsubmit=\"return tjekinput()\"  i din form kommado. Hvis der ikke står return foran virker det ikke.
Avatar billede htx98i17 Professor
31. juli 2001 - 17:00 #34
det gør der, den hedder:

<form method=\"post\" action=\"index.php?a2=order\" name=\"orderarticles\" onSubmit=\"return tjekinput()\" >
Avatar billede jakoba Nybegynder
31. juli 2001 - 17:03 #35
Det gør ikke noget med lidt rod, især ikke når der er gode indrykninger så man kan finde ud af hvor man er :-).

jeg tror det er mig der har lavet en anden fejl. linien:
                if(i>=frm.payment.length ) return nogo( frm.payment );
bør være:
                if(i>=frm.payment.length ) return nogo( frm.payment[0] );
for at Undefined kan blive til det rigtige navn.
Avatar billede htx98i17 Professor
31. juli 2001 - 17:03 #36
en detalje:

hvis jeg vælger en payment, og submitter, så alerter den med \"Udfyld venligst feltetfirma\"
Avatar billede htx98i17 Professor
31. juli 2001 - 17:06 #37
så virker det jakoba! fedt!

Skal vi så lave det med label? :o))
Avatar billede htx98i17 Professor
31. juli 2001 - 17:07 #38
og må jeg lige spørge om hvor function nogo() får variablen \"felt\" fra?
Avatar billede htx98i17 Professor
31. juli 2001 - 17:10 #39
følgende kode virker:

<script language=\"javascript\" >
       
        function nogo(felt) {
            alert( \"Udfyld venligst feltet\" + felt.name );
            felt.focus();
            return false
        }
       
        function tjekinput() {
       
            var frm = document.orderarticles;
           
            formPayment = frm.payment.value;
            formFirma = frm.firma.value;
            formFornavn = frm.fornavn.value;
            formEfternavn = frm.efternavn.value;
            formAdresse = frm.adresse.value;
            formPostnr = frm.postnr.value;
            formTlf = frm.tlf.value;
            formBy = frm.by.value;
               
                var i;
                for (i=0; i<frm.payment.length; i++) if ( frm.payment[i].checked ) break;
                if(i>=frm.payment.length ) return nogo( frm.payment[0] );
              if(formFirma == \'\') return nogo(frm.firma);
              if(formFornavn == \'\') return nogo(frm.fornavn);
              if(formEfternavn == \'\') return nogo(frm.efternavn);
              if(formAdresse == \'\') return nogo(frm.adresse);
              if(formPostnr == \'\') return nogo(frm.postnr);
              if(formBy == \'\') return nogo(frm.by);
              if(formTlf == \'\') return nogo(frm.tlf);
             
                 
        }
   
    </script>
Avatar billede jakoba Nybegynder
31. juli 2001 - 17:17 #40
funktionen nogo får sin variabel felt idet vi kalder den

              if(formFirma == \'\') return nogo(frm.firma);
det der står indeni parentesen efter nogo bliver lagti ind i felt
præsis som hvis vi havde saget:
      felt = frm.firma;
på den måde får felt en forskellig værdi hvergang vi kalder nogo( ... ).

men nu skal vi have udvidet så der kommer 2 parametre. så hvert sted vi kalder skal der så også angives 2 værdier, een til felt og een til label

funktionen bliver:
    function nogo( felt, label ) {
        alert( \"Der skal stå noget i feltet \" +label );
        felt.focus();          // såt focus så feltet er klar til at skrive i
        return false
    }; //end nogo( formelement objekt ) -> false

og der vi kalder den tilføjer vi et \'kønt navn\' der kan blivet til variable label:
                if(i>=frm.payment.length ) return nogo( frm.payment[0], \"betalingsform\" );
              if(formFirma == \'\') return nogo( frm.firma, \"Firma\" );
osv.

mvh JakobA


Avatar billede htx98i17 Professor
31. juli 2001 - 17:24 #41
yes, så virker det perfekt jo :)
jakoba lig lige et svar, så får i lige lidt point...

Tusind tak for hjælpen og tålmodigheden :)
Avatar billede jakoba Nybegynder
31. juli 2001 - 17:29 #42
takker
Avatar billede htx98i17 Professor
31. juli 2001 - 17:32 #43
selv tak da :)
Avatar billede jakoba Nybegynder
31. juli 2001 - 17:33 #44
Hov forresten fik du skrevet 
    return true;    // alt er udfyldt, så nu må den submittes
tilsidst i funktionen tjekinput()
Avatar billede htx98i17 Professor
31. juli 2001 - 17:36 #45
nej det fik jeg ikke gjort, men den submitter alliegevel?
jeg undrede mig godt nok også hvor den fik true fra, men den virker alliegevel?
Avatar billede htx98i17 Professor
31. juli 2001 - 17:41 #46
jeg skal lige æde, er tilbage lidt senere :)
Avatar billede roenving Novice
31. juli 2001 - 18:01 #47
>>

Så fik du sgu da noget for den 25-øre *GG*

Takker ;~}
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