12. maj 2010 - 13:38Der er
11 kommentarer og 1 løsning
OnBlur event bliver ikke altid fyret af
Hejsa
Jeg har en tekstboks som har et onblur og onchange event som kalder samme javascript metode for at validere at værdien i det indtastede felt overholder nogle bestemte krav.
Det virker fint nok, men hvis man vælger en værdi som browseren har gemt fra tidligere. Altså den her drop down som kommer frem i IE, så bliver eventet aldrig fyret af.
Er der nogen som har en forklaring på det? Og hvilket event som vil blive fyret af når man vælger en værdi på denne måde???
Der udløses formodentlig ingen event. Løsningen er nok at disable autocomplete for det pågældende felt:
<input type="text" name="foo" autocomplete="off">
/mvh </bole>
Synes godt om
Slettet bruger
13. maj 2010 - 12:59#2
Men så mister man den feature, og det er jo synd.. Du ku' også lige checke om der ER noget i feltet, og i givet fald validere det, fra window.onload.
Filosofisk.. Hvis der ER noget i feltet, så må det være overvintret fra sidste gang brugeren havde fat i det. Hun er nu blot er "backet" tilbage til siden (der er vel ikke andre mligheder?) - SÅ: Hvis det var OK første gang, er det vel stadig OK ?
Hmmm, har slået autocomplete fra nu. Det afhjælper selvfølgelig problemet, men helt rigtigt at det er ærgeligt at miste funktionen.
Det skal bruges som en slags visuel validerings funktion.
Dvs, der er en div ved siden af hver tekstboks. Når brugeren indtaster noget så er meningen at der skal vises et grønt flueben når værdien er accepteret. F.eks. for et felt hvor man skal indtaste tlf. nr tjekker jeg om alle tegn er tal og om de er 8 cifre lange.
Hvis ja, så sætter jeg en class på den div som er ved siden af feltet og giver dermed den div et baggrundsbilled som er det her flueben.
Nå, men smid et svar, så får vi den her lukket igen.
Tak for input.
Mvh. Lasse
Synes godt om
Slettet bruger
15. maj 2010 - 09:13#4
Dvs. ekstra validér-kald i onload ? (I øvrigt en rigtig god metode du bruger: synlig validering, on-the-fly)
Ja, ikke lige i onload. Der ligger på den usercontrol hvor formen også er lagt i min ASP.Net kode.
Som den sidste del af HTML koden kører den validering af alle input felterne på formen. Derudover køres samme valideringsfunktion i onchange og onblur og som sagt med autocomplete slået fra.
Det virker ret godt og giver helt rigtigt en tydelig og on the fly validering...
T4NK3R >> Nogen kan lide moderen - andre vil have datteren. Nogle synes, det er synd, man ikke kan bruge autocomplete - for mig svarer det dog til at mangle en pelshue i Death Valley! Jeg klarer mig mere end fint (læs: bedst) uden ;o)
Onblur har jo kun effekt når man tabber væk fra feltet eller skifter fokus til et andet element. Onchange virker generelt bedre for select. Jeg ville have forslået at bruge onkeyup i stedet, men nu er det jo for sent. :p
Nej, den event, der virker bedst, er den, man har brug for i den aktuelle situation. Onblur og onchange virker helt forskelligt og kan ikke erstatte hinanden - hverken på alm. input eller select elementer.
Onkeyup er en rigtig skidt idé, da der ikke er noget mere irriterende og/eller forvirrende for en bruger end, at der bliver rettet i det, vedkommende skriver, mens han skriver det.
Ligesom man bør vente til en person har talt ud med at kommentere/rette på vedkommendes udtalelse, bør man også vente, til han har skrevet færdig med at rette det skrevne. Det er væsentlig bedre stil ;o)
Onkeyup er en god ide, når det handler om forcere datatyper i input da det giver brugeren et øjeblikkeligt fingerpeg om feltets natur. Hvis du prøver at skrive et bogstav i et felt, der kræver tal, og det automatisk bliver fjernet, så er det godt. Hvad der derimod er virkelig irreterende er når man skriver et og den indsætter noget andet og mere ligesom ved visse former for scripted autocompletes, hvor man ender med at skrive noget værre rod til sidst.. Ligesom når man sender sms'ser i blinde..
At lade en person bruge fem minutter på at forklare dig noget som du efter tre sekunder indser er forkert ender bare med at du undgår ham i fremtiden. Man kan lige så godt være ærlig fra starten. Hvis det er derimod er en meningsudveksling eller debat, så er det jo en anden snak, men når det handler om faktuelle data og input i formularer, så synes jeg ikke at det er godt at lade folk blive for længe i deres vildfarelse for det er dårlig stil.
Når formen er rigtig fra starten af, så risikerer du ikke at komme tilbage til den med de forkerte data.
Jeg er fundamentalt uenig - men er ganske vandt til at høre betragtningerne. Jeg har dog endnu til gode at møde professionelle af samme mening, hvilket måske kan hænge sammen med, at de har været med til eller læst omfattende brugertest, og derfor har en kvalificeret mening om, hvordan brugerne egentlig opfatter et givent interface =)
Hvad du og jeg personligt synes om en eller anden feature er ganske uden interesse. Hvordan brugere opfatter det, vi laver, er det, vi bør fokusere på
Nu ikke så nedladende. Jeg har været professionel udvikler i mere end ti år og er det stadig, så det kan jeg ikke give dig ret i. Det er altid muligt at irretere nogen i en hvilken som helst sammenhæng.
Helt enig i, at meningsudvekslinger der egentligt ikke bidrager med noget til problemløsninger bør foregå i en anden debat end brugerens tråd, men det var dig selv, der startede med det og jeg synes at jeg er ret konstruktiv :P.
Jeg er ikke spor enig i, at meningsudvekslingerne her (som jo er ganske relevante) bør foregå i en anden tråd. Derfor har jeg heller ikke været i nærheden af skrive noget sådan.
Jeg er absolut ikke nedladende, men konstaterer blot, at jeg aldrig har mødt professionelle, der går ind for at rette brugerens indtsatning, mens han/hun indtaster.
Om du er professionel eller ej, er sådan set ikke så interessant i den forbindelse. Jeg konstaterer blot, at jeg endnu ikke har mødt nogen. Det er der jo ikke noget nedladende i =)
Ja, naturligvis kan man irritere nogen i alle sammenhænge. Netop derfor er det så ekstremt vigtigt, vi på alle måder prøver at undgå det. Koder kan man sætte chimpanser til at lave ... det er alt det andet, vi får vores løn for ;o)
Synes godt om
Ny brugerNybegynder
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.