Validering på en <select>

Tags:    html css

Hej med jer. Jeg kører noget validering på en <select>. Valideringen sikrer at folk har valgt en af de options der er. Jeg har førhen brugt <option selected="selected">Vælg</option> så første felt ikke er, hverken tomt eller den første mulighed. Men ligeså snart der står noget i boxen, så validerer den fint fordi der er input i.

Jeg vil høre om der er en nem og bekvemt måde og komme uden om problemet på?




Valideringen sikrer at folk har valgt en af de options der er


Kan man da vælge andre? (end dem der er)

Hvis du fjerner din "vælg" så skal du ikke validere noget som helst, så vil den jo have en lovlig værdi fra starten af...




Valideringen sikrer at folk har valgt en af de options der er


Kan man da vælge andre? (end dem der er)

Hvis du fjerner din "vælg" så skal du ikke validere noget som helst, så vil den jo have en lovlig værdi fra starten af...


Ja hvis man har en default værdi som fx "Vælg venligs en af nedenstående" eller bare "vælg" så registreres den som en option, hvilket den jo i virkeligheden ikke er.

Hvis jeg fjerner "vælg" så har jeg en box uden tekst i, hvilket jeg ikke mener er så brugervenligt.



Hej Rasmus,

Hvorfor giver du ikke bare din default option en value som ingen af de andre har, og som du så tjekker op i mod? Nu ved jeg ikke hvilken slags validering du bruger, men typisk kan du jo fx give din default værdi ("Vælg") en value som fx -1, og så tjekke på det når du validerer.

Mvh.

Kasper (TSW)




Hvis jeg fjerner "vælg" så har jeg en box uden tekst i, hvilket jeg ikke mener er så brugervenligt.


Du får jo netop ikke en tom drop down, den første værdi vil altid være valgt (i hvertfald i min IE8) så du står ikke med et problem.

Med hensyn til at skrive "Vælg" i din dropdown så synes jeg det er "forkert" typisk vil du have en ledetekst der fortæller dig hvad du skal fx. "Land: " og så ved brugeren godt at når man ser en drop down så skal/kan man vælge. Jeg synes det er mere forkert/vildledende for brugeren at man skriver "Vælg" i en liste med lande - mig bekendt er der ingen lande der hedder "Vælg"...

Har du testet det? hvordan ser denne simple kode ud i din browser som et html dokument:

Fold kodeboks ind/udKode 






Indlæg senest redigeret d. 09.10.2009 11:44 af Bruger #2730
Hej Rasmus,

Hvorfor giver du ikke bare din default option en value som ingen af de andre har, og som du så tjekker op i mod? Nu ved jeg ikke hvilken slags validering du bruger, men typisk kan du jo fx give din default værdi ("Vælg") en value som fx -1, og så tjekke på det når du validerer.


Det var også sådan noget jeg var ude i. Jeg bruger javascript til valideringen. Ville egentlig også høre om der var en funky html feature der kunne gøre det samme.




Hvis jeg fjerner "vælg" så har jeg en box uden tekst i, hvilket jeg ikke mener er så brugervenligt.


Du får jo netop ikke en tom drop down, den første værdi vil altid være valgt (i hvertfald i min IE8) så du står ikke med et problem.

Med hensyn til at skrive "Vælg" i din dropdown så synes jeg det er "forkert" typisk vil du have en ledetekst der fortæller dig hvad du skal fx. "Land: " og så ved brugeren godt at når man ser en drop down så skal/kan man vælge. Jeg synes det er mere forkert/vildledende for brugeren at man skriver "Vælg" i en liste med lande - mig bekendt er der ingen lande der hedder "Vælg"...

Har du testet det? hvordan ser denne simple kode ud i din browser som et html dokument:

Fold kodeboks ind/udKode 





Det er rigtigt, den bliver ikke tom hvis ikke speciferer det, men hvis brugeren så vælger og overse feltet så kommer der input man i realiteten ikke kan bruge til noget. Derfor er det smart og ha en vælg samt en validering på feltet.




Det er rigtigt, den bliver ikke tom hvis ikke speciferer det, men hvis brugeren så vælger og overse feltet så kommer der input man i realiteten ikke kan bruge til noget. Derfor er det smart og ha en vælg samt en validering på feltet.


Hvad vil du så validere? At brugeren rent faktisk har indtastet i feltet? Hvordan validerer du din brugers adfærd?

Jeg mener at hvis jeg udfylder en form og der står "Danmark" i land i den drop down , så gør jeg ikke noget... det burde der ikke valideres på.

Du er på vej ind i validerings-helvede for du bør kun validere input, HVIS der kan være indtastet en ULOVLIG værdi (fx email uden @ og .) - og IKKE VALIDERE hvis det semantisk (forståelsesmæssigt) ikke er korrekt.

Det er nu engang brugerens ansvar at udfylde en form korrekt. Du er samtidig ansvarlig for at brugeren får KORREKTE data til at vælge mellem, og "vælg" er ikke korrekt data, det er din sammenblanding af test kode og forretningskode. Med andre ord så er den eneste grund til at der står "vælg" i boksen, for at du vil kunne validere på det - derfor skal det ikke med...



Er det ikke meget smart at sikre sig de korrekte oplysninger? Hvis der står danmark i feltet som default og manden er fra afganistan, men han på en eller anden måde overser eller glemmer og udfylde så er oplysningen forkert. Det er jo bla også derfor man har en validering på sin side, så man sikrer sig alle de ønskede informationer.
Jeg mener selv at man ligeså godt kan biddrage med så meget som muligt i sådan en process for at begge kommer med de mest saglige oplysninger.




Jepsen, enig - lidt i hvertfald. Problemet er bare at du ikke ved hvordan man validerer "saglighed", men du kan derimod give de bedste og mest korrekte informationer til brugeren, så han ikke er i tvivl om hvad han skal vælge.

Jeg kan sagtens se hvorfor du vil have "Vælg" til at stå i selecten, men i princippet er det forkert.

Hvis vi trækker den til ekstremerne, så skal du så også skrive "skriv dit navn her" i tekstfeltet med ledeteksten "Navn: " foran. Min pointe er at hvis du har teksten: "Land: [Danmark]" og det i firkantede klammer er din select, hvad er der så tilbage, du har fortalt hvad det er og givet dit bud på en korrekt værdi (man kan så diskutere om du kan lave et bedre forslag, men det er irellevant). Ved at skrive "vælg" i selecten, fortæller du jo faktisk brugeren HVORDAN han skal benytte en select.

Jeg synes det handler om at have en høj sammenhæng (high cohesion) i sine data, og det synes jeg ikke man har hvis man har "Vælg" som en værdi. Som tidligere skrevet er det ikke for brugerens skyld du har skrevet det, det er for din egen validerings skyld, dvs, man kan kalde det for en del af din test/validerings kode - og den kommer ikke brugeren ved. Så vil jeg _næsten_ hellere have en tom streng med værdien -1 som Kasper også nævner, til at teste på.





Indlæg senest redigeret d. 09.10.2009 15:11 af Bruger #2730
t