Avatar billede Calle5463 Forsker
18. juni 2012 - 16:56 Der 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?
Avatar billede olebole Juniormester
18. juni 2012 - 17:00 #1
<ole>

Det kan du ikke. Brug en anden måde at informere din bruger på. En alert er heller ikke særlig venlig i sin 'adfærd' og undgås, hvor det kan  =)

/mvh
</bole>
Avatar billede olebole Juniormester
18. juni 2012 - 17:02 #2
- 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  =)
Avatar billede Calle5463 Forsker
18. juni 2012 - 19:58 #3
#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.

Passer det til din funktion?
Avatar billede olebole Juniormester
18. juni 2012 - 20:46 #4
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
Avatar billede Calle5463 Forsker
18. juni 2012 - 23:03 #5
#4 point taken.

Hvad med jquery - er det gangbart?

(Javascript "kører" på brugerens pc (hedder vel "klienten" - hvordan fungere jquery?)
Avatar billede olebole Juniormester
19. juni 2012 - 00:55 #6
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.
Avatar billede Calle5463 Forsker
19. juni 2012 - 11:17 #7
#6 - Jeg skal lige være med. Som jeg forstår det:

jQuery ligger "på nettet" og "erstatter" Javascript som måske/måske ikke ligger hos brugeren.

jQuery implementeres når siden loades ( <script src="http://ajax.googleapis.com/...........></script> )

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
Avatar billede olebole Juniormester
19. juni 2012 - 13:22 #8
Nej, jQuery erstatter ikke JavaScript. Det er skrevet i JavaScript ... det er JavaScript.

1) Det bestemmer du selv.

2) Nej, PHP fungerer kun på serveren - og HTML er et opmærkningssprog helt uden funktionalitet
Avatar billede Calle5463 Forsker
19. juni 2012 - 14:54 #9
#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 :-)
Avatar billede olebole Juniormester
19. juni 2012 - 15:00 #10
1) Det er meget lettere at tjekke et par tutorials, så du finder ud af, hvad du kan med teknikken.

2) JavaScript validering bruges udelukkende for brugerens skyld. Alle data skal under alle omstændigheder valideres med PHP på serveren
Avatar billede Calle5463 Forsker
19. juni 2012 - 15:25 #11
#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.
Avatar billede olebole Juniormester
19. juni 2012 - 15:46 #12
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
Avatar billede Calle5463 Forsker
19. juni 2012 - 16:15 #13
#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
Avatar billede olebole Juniormester
19. juni 2012 - 17:42 #14
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?
Avatar billede Calle5463 Forsker
19. juni 2012 - 19:06 #15
#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)
Avatar billede olebole Juniormester
19. juni 2012 - 19:23 #16
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)
Avatar billede Calle5463 Forsker
19. juni 2012 - 19:48 #17
#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, ...)?
Avatar billede olebole Juniormester
19. juni 2012 - 20:11 #18
WAI er et godt sted at begynde. Her er lidt på dansk(!) fra W3C. Spændende analyserapport fra IT- og Telestyrelsen - og deres egne ord om den.

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)
Avatar billede olebole Juniormester
19. juni 2012 - 20:18 #19
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  =)
Avatar billede olebole Juniormester
19. juni 2012 - 20:21 #20
- og så er der selvfølgelig NOSCRIPT elementet
Avatar billede Calle5463 Forsker
03. juli 2012 - 00:41 #21
selvmål
Avatar billede Calle5463 Forsker
03. juli 2012 - 00:42 #22
x
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