18. juni 2012 - 16:56Der er
21 kommentarer og 1 løsning
Lidt kvaler med FF og alert()
Hvordan forhindrer jeg brugeren i at afkrydse "Fjern denne sides mulighed for at oprette flere dialogbokse"?
For den formular jeg har lavet, er det temmelig vigtigt at brugeren får beskeder vedrørende fejl, mangler og umulige handlinger - og der er temmelig nogen muligheder.
Bør jeg bruge noget andet end javascript(hvad)når det er essentielt at brugeren bliver gelejdet rundt?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
- men hvis du er interesseret, har jeg lavet en funktion til IE, som implementerer FF's fantastisk brugbare feature i debug sammenhæng ... som er alert'ens bedste begrundelse for eksistens =)
#1 & 2: Jeg har haft det i baghovedet hele tiden, at jeg ikke kan styre sagerne ved brug af javascript, men har alligevel valgt det - men udelukkende for at få lidt has på alle tjekkene jeg skal lave. Og det fungere sådan 90%.
For nu lige at tage den lidt ovenfra: Det skal virke på "alle" browsere, brugerne befinder sig i DK. Det er banalt set en formular (navn, adresse mv., ja/nej-spørgsmål) hvor der - afhængig af svar - bliver vist og stillet yderligere spørgsmål eller sagen bliver afvist.
Hvis sagen ikke afvises, er det tanken at datainput skal godkendes af brugeren med NemID - men formular med validering skal lige virke først.
Det misforstod du vist. Jeg har lavet en skøn funktion til brug i IE, som giver samme mulighed for at afbryde en strøm af alerts - ligesom i FF. Ekstremt brugbar! =)
Du kan vel bruge et div, som du viser og gemmer på en nedtonet baggrund. Nettet flyder med den slags. Prøv at søge på noget i stil med "dynamic modal dialog".
Derudover kan jeg generelt anbefale denne og denne artkel om client side formvalidering
jQuery, som er en samling af funktionalitet, skrevet i JavaScript, bruges ofte til den slags løsninger - eller rettere som grundlag.
En eller anden udvikler skriver et script, som implementerer en funktion, der kan vise en boks med noget tekst mod en nedtonet side. Til det bruger han en masse funktionalitet fra jQuery, som importeres i et SCRIPT tag, før udviklerens eget importeres.
Jeg skriver min kode som bruger funktionaliteterne i den implementerede jQuery og har (burde ha') fuldstændig styr på hvad der sker. Men, jeg skal lige finde ud af -
1) er det stadig muligt for brugeren at fravælge alertsene/jQuery?
2) kan jeg i stedet lave det med php/html (kan jeg styre <div></div>, jeg ser måske ikke løsningen lige foran mig) - der er et par felter der skal håndteres under indtastning, resten kan håndteres ved onsubmit
#8.1: Dvs. jeg kan sætte en parameter, så brugeen ikke kan slå alert's fra?
#8.2: Dvs. jeg er tilbage ved javascript hvis jeg vil styre på brugerens input - eller er der andre muligheder?
Konkret: Fødselsår: <input type='text' name='birth'> now = (new Date()).getFullYear() low_lim = now - 25 high_lim = now
Hvis birth < low_lim, så afvis Hvis birth > high_lim, så afvis
Hvis birth >= 2006, så spørg om - Attest indsendt efter 1-6-2006: <select name='attestindsendt'> <option value'ja'>Ja</option> <option value'nej'>Nej</option> </select>
Hvis attestindsendt=ja, så spørg om - Er attesten godkendt: <select name='attestgodkendt'> <option value'ja'>Ja</option> <option value'nej'>Nej</option> </select>
- og så er der forskellige resultater afhængig af kombinationen af svar.. håber det er forståeligt :-)
#10.2: Data skal selvsagt slut-testes inden de lagres, men det foekommer ikke særlig brugervenligt at vente med at komme med "fingeren" efter indtastning af 50 data hvor det kan afklares på de første tre, og hvis det første felt er i et bestemt interval kan to spørgsmål springes over.
Så derfor vil jeg lave noget validering undervejs og det hedder så "javascript" hvor jeg ikke kan have helt syr på hvad brugeren har gjort ved sin browser. Desuden kan fingernemme brugere "luse" sig udenom tjekkene. Det forekommer mig ikke at være særlig smart.
Hvor mange danske brugere har ikke javascript?
- og så er der desværre grænser for hvor langhåret det må blive.
Hvis valideringen er skabt til brugerens forkælelse, og vedkommende på fingernem vis "luser" sig udenom, må jeg formode, du har vigtigere ting at tage dig af ... fiskerinoteringerne for det sydlie Albanien, for nu at nævne en enkelt ting =)
"Hvor mange danske brugere har ikke javascript?" >> Formodentlig en del færre end danskere med seks tæer. Du kan stort set intet foretage dig på WWW uden JavaScript.
Du har i dag ikke andre muligheder for at hjælpe brugeren med validering end at bruge JavaScript. Bruger du ikke JavaScript, hjælper du ingen. Bruger du JavaScript, hjælper du alle - men du kan ikke undgå, at en besværet selvskader i ny og næ insisterer på at piske sig selv med din formular og "luse" sig uden om den hjælp, du forsøger at begave ham med =)
På sigt vil du kunne bruge HTML5 og CSS3, men HTML5 er endnu ikke færdig og kun (i svingende grad) understøttet i de mest moderne browsere. Der er stadig ret mange med gamle browsere, men stort set ingen med JS disabled. Valget er ikke svært
#12. Arhh, vi to skriver ikke helt samme dialekt, så derfor misforstår jeg indimellem det du skriver.
Jeg har ikke brugt det før, men det kan jo lade sig gøre tjekke om brugeren har en aktiv javascript og så kan jeg jo vælge at advare brugeren om manglende funktionalitet i ft. til min formular.
Smid et svar (men ikke for hårdt, jeg er ikke god til at gribe) så tråden kan blive lukket
En funktionalitet til at afgøre, om bruger har sproget, der muliggør funktionalitet, er desværre ikke muligt.
Men hvorfor så optaget af de, der har slået JS fra? De er stort set ikke eksisterende. Det er overvældende mere sandsynligt at få en bruger, som er svagtsynet eller blind. Hvor meget energi lægger du i at servicere dem?
#14: * "Hvor meget energi lægger du i at servicere dem?": Meget.
Det er mine potentielle kunder, ikke modstandere. Også hvis de bliver afvist - så skal de bare have en anden men dyrere løsning - og helst hos mig. Derfor er det vigtigt, at fastholde deres interesse og forståelse.
Og de skal underskrive (ansvarspådragende) erklæringen (NemID), så det er vigtigt det ikke er mig der får dem til at falde i, men at de har haft indtil flere muligheder for at undgå at afgive
* "En funktionalitet ....": I betragtning af hvor mange seksfingrede danskere der findes, så løber jeg risikoen ved ikke at tjekke. Evt. indtastede fejl skal ender alle omstændigheder fanges af noget php-tjek inden bruger får lov at underskrive og dermed gemme data.
(OT: hvorfor virker min browser underlig når jeg editere her - den lille curserstreg flytter sig ikke med piletaster)
Jeg synes ikke, jeg ser noget i dit indlæg, der bekræfter, du gør noget særligt for handicappede.
Det er overvejende sandsynligt, at der ikke er én eneste dansker med JavaScript slået fra. De seneste 10 år er jeg ikke stødt på én eneste i mine sitestatistikker - hverken for egne eller kunders sites. Når du af og til ser statistikker med målelige resultater for klienter med JS slået fra, skyldes det robotter, der ikke er frasorteret resultatet.
Derimod findes der titusindvis af handicappede danskere, som langt de fleste siteindehavere blankt ignorerer.
Et enkelt, lillebitte eksempel er, at hvis du kan finde værdier for skriftstørrelser i din CSS med enheden px, hører du selv til blandt disse ignoranter. Og så burde du nok bruge krudtet på lidt mere realistiske reparationer af koden ... til gavn for dine 'potentielle kunder' *o)
#16 - handicappede: Point taken - det får en pind i to-do listen (pænt højt oppe). Er der et sted hvor man kan få god vejledning i hvordan man kan tage hensyn (ældre, svagtseende/blinde, ordblinde, ...)?
Ellers er der jo altid de forskellige handicaporganisationer. Hvis du kontakter nogle af dem og spørger, vil de få travlt med at få tænderne gravet op af keyboardet igen ... det er de nemlig absolut ikke forvent med! Samtidig er vi vel alle lidt commerce-skøge-agtige, og det er jo altid værd at få den slags organisationer som venner. Største 'fare' er jo, at de kunne finde på at omtale/anbefale sitet til sine medlemmer *o)
PS: Jeg ved ikke, om du helt fik meningen i "En funktionalitet til at afgøre, om bruger har sproget, der muliggør funktionalitet, er desværre ikke muligt.".
"Man kan så meget med elektronik. Lad os lave en alarm, der fortæller, når strømmen går." >> Det er jo en meget god plan, men det kræver en eller anden energiform (akkumulator/batterier), da strømmen jo er væk.
På samme måde, må vi sikre os, der findes et andet scriptsprog i browseren, som vi kan bruge til at undersøge, om JavaScript er slået fra. Det er ikke en holdbar tilgang.
Man kan fortælle brugeren, at JS er slået til - men ikke, at det er slået fra. Et 'hack' kunne være:
<div id="foo"> Din browser understøtter ikke JavaScript </div> <script type="text/javascript"> document.getElementById("foo").style.display = "none"; </script>
- men som sagt mener jeg, man bør vælge sine slagmarker med større kræsenhed =)
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.