Avatar billede den-evil Nybegynder
31. januar 2008 - 10:49 Der er 9 kommentarer og
1 løsning

form validering, markering af felt

Har brug for noget kode der gør at hvis man fx ikke udfylder et felt der eksempelvis kunne hedder "Fornavn" at efter man så har trykket på send, at den så highlighter det felt, og skriver "Udfyld navn"
Avatar billede den-evil Nybegynder
31. januar 2008 - 11:52 #1
Jeg har prøvet således, den validerer fint nok, men den add'er ikke et klassenavn???

function validering_kraevet(field,alerttxt) {
    with(field)
{
    if(value==null||value==""){
        alert(alerttxt); return false;
    } else {
        return true;
    }
}
}

function valider_form(thisform){
    with(thisform)
    {
        if(validering_kraevet(FirstName, "Fill out Firstname")==false) {   
            FirstName.focus();
            FirstName.className+= " error";
            return false;
        }
        if(validering_kraevet(LastName, "Fill out Lastname")==false) {
            LastName.focus();
            LastName.className+= " error";
            return false;
        }
        if(valider_kraevet(Company, "Fill out company")==false){
            Company.focus();
            Company.className+= " error";
            return false;
        }
        if(valider_kraevet(PostalAddress, "Fill out company")==false){
            PostalAddress.focus();
            PostalAddress.className+= " error";
            return false;
        }
        if(valider_kraevet(Postcode, "Fill out company")==false){
            Postcode.focus();
            Postcode.className+= " error";
            return false;
        }
        if(valider_kraevet(City, "Fill out company")==false){
            City.focus();
            City.className+= " error";
            return false;
        }
        if(valider_kraevet(Phone, "Fill out company")==false){
            Phone.focus();
            Phone.className+= " error";
            return false;
        }
        if(validering_kraevet(Email, "Fill out email")==false){
            Email.focus();
            Email.className+= " error";
            return false;
        }
        if(validering_kraevet(EmailRepeat, "Fill out email")==false){
            EmailRepeat.focus();
            EmailRepeat.className+= " error";
            return false;
        }
        if(validering_kraevet(CompanyCategory, "Fill out email")==false){
            CompanyCategory.focus();
            CompanyCategory.className+= " error";
            return false;
        }
        if(validering_kraevet(JobFunction, "Fill out email")==false){
            JobFunction.focus();
            JobFunction.className+= " error";
            return false;
        }
    }
}
Avatar billede w13 Novice
31. januar 2008 - 13:14 #2
className virker kun i IE, så du bør også sætte:
JobFunction.class+=" error";

for andre browseres skyld. Alternativt kan du bare sætte backgroundcolor:

JobFunction.style.backgroundColor="#ff0000";

eller evt. lave en funktion ud af det.

Det er en skidt idé at skifte class on-the-fly, da al CSS da skal rekalkuleres.
Avatar billede olebole Juniormester
31. januar 2008 - 23:13 #3
<ole>

Property'en 'className' er en del af IDL og således en del af W3C's rekommandationer.

Derimod er det kun IE, der bruger 'className', når et HTML-elements class-attribut skal sættes/læses (alle andre bruger det standardiserede 'class') ... men der er tale om to vidt forskellige ting  ;o)

Skift af CSS-klasse performer ganske rigtig elendigt - og det gør 'with' også. Undgå, såvidt der overhovedet er muligt, de to.

/mvh
</bole>
Avatar billede olebole Juniormester
31. januar 2008 - 23:14 #4
"når et HTML-elements class-attribut skal sættes/læses med set-/getAttribute" - skulle der stå  :)
Avatar billede den-evil Nybegynder
31. januar 2008 - 23:26 #5
Ok, så den bedste løsning er? - Er ikke verdens hårdeste til javascript :S
Avatar billede w13 Novice
31. januar 2008 - 23:44 #6
At kode det manuelt, f.eks.:

JobFunction.style.backgroundColor="#ff0000";
JobFunction.style.border="0px";
Avatar billede den-evil Nybegynder
01. februar 2008 - 10:50 #7
Det funger skam perfekt... Takker... Ligger du et svar ?
Avatar billede w13 Novice
01. februar 2008 - 13:08 #8
Oki! =)
Avatar billede w13 Novice
01. februar 2008 - 13:08 #9
Som svar!
Avatar billede w13 Novice
01. april 2008 - 12:09 #10
Lukketid?
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