Avatar billede Slettet bruger
24. januar 2005 - 08:59 Der er 7 kommentarer og
1 løsning

Kontrol af 2 formfelter

Hej.

Jeg har fundet nedenstående her:  http://eksperten.dk/spm/122976

og rettet lidt til. Men den sender email selvom felterne er tomme.

Hvordan kan jeg få det til at virke så der skal stå noget i begge input felter i formen før den vil sende ?


var feltNavne = new Array("materiale", "email");
                    // navnene på de felter der skal checkes.

function validate ( frm ) {

    for (var i=0; feltNavne.length > i; i++ ) {
        var flt = frm[feltNavne[i]];
        if ( flt.type=='Begge felter skal udfyldes' && flt.value.length==0 )
            return false;
        if ( flt.type.indexOf('select')==0 && flt.selectedIndex==0 )
            return false;
    }
    return true;  // alle tests gik godt

}; //end validate ( Form objekt ) -> boolean


Submit linien ser sådan ud:

<td colspan="2" align="center"><input name="Submit" type="submit" onsubmit="return validate(this)" value="Send email">

På forhånd tak.
Avatar billede Slettet bruger
24. januar 2005 - 09:02 #1
Denne:
        if ( flt.type=='Begge felter skal udfyldes' && flt.value.length==0 )

er vist en fejl, og skal være

        if ( flt.type=='text' && flt.value.length==0 )

men det hjalp ikke.
Avatar billede roenving Novice
24. januar 2005 - 10:41 #2
En onsubmit skal placeres på form-tagget:

<form ... onsubmit="return validate(this)">
<table><tr>

...

<td colspan="2" align="center"><input name="Submit" type="submit" value="Send email">

...

</tr></table>
</form>
Avatar billede ldanielsen Nybegynder
24. januar 2005 - 10:42 #3
Først, ret return true  til return false, mens du tester. så bliver formen ikke sendt og fejlfindingen bliver lettere.

Hold så øje med fejlmeldinger fra browseren. Hvis du ikke har bedt om af få besked om alle fejl (i Internet indstillinger) så vil fejl kun kunne ses ved at der komme et gult advarselsikon nederst til venstre i statuslinien.
Avatar billede ldanielsen Nybegynder
24. januar 2005 - 10:42 #4
roenving har naturligvis ret
Avatar billede Slettet bruger
24. januar 2005 - 10:46 #5
Tak for tipsene. roenving smid et svar. Det var vist lige prikken over i'et :-)

Kan man ikke sætte en alert ind så den lige skriver at brugeren har glemt noget ?
Avatar billede roenving Novice
24. januar 2005 - 10:54 #6
Jo, da:

function validate ( frm ) {

    for (var i=0; feltNavne.length > i; i++ ) {
        var flt = frm[feltNavne[i]];
        if ( flt.type=='text' && flt.value.length==0 ){
            alert('Du har glemt at udfylde ' + feltNavne[i] + ' !-)');
            flt.focus();
            return false;
        }
        if ( flt.type.indexOf('select')==0 && flt.selectedIndex==0 ){
            alert('Du har glemt at udfylde ' + feltNavne[i] + ' !-)');
            flt.focus();
            return false;
        }
    }
    return true;  // alle tests gik godt

}; //end validate ( Form objekt ) -> boolean

Velbekomme '-)
Avatar billede roenving Novice
24. januar 2005 - 10:57 #7
-- og tak for point ;~}
Avatar billede Slettet bruger
24. januar 2005 - 10:57 #8
Selv tak, det var en fornøjelse. Og din alert virker også. Lækkert. TAK.
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