Avatar billede bas Forsker
08. juli 2008 - 23:57 Der er 5 kommentarer og
1 løsning

Javascript og XHTML

Hej

Prøv at kigge på scriptet til formularen
http://www.mapl.dk/mailform/mailform.php

Jeg forsøger at få koden til at validere i forhold
til XHTML og samtidigt fungere med javascriptet.

Jeg har et par spørgsmål.

Først:

Skal syntaksen til onload (linje 13) indeholde document,
og hvordan er det man definerer variablen?
Altså skal der i stedet stå
<body onload="document.kontaktform.name.focus()"> ?

Hvis jeg tilføjer document kommer der en fejl om noget
med NULL eller ikke et objekt - sikkert fordi jeg ikke
har defineret document. Men men hvordan er det nu man
gør det?

Når jeg prøver at validere koden via
http://www.w3schools.com/site/site_validate.asp

får jeg at vide, at den er gal med tegnet < i linje 34,
og at jeg måske i stedet skal skrive &lt;
Men det er jo javascript, og skal vel helst arbejde med
rigtige tal eller hvirdan? Er det for der skal tilføjes nogle
tegn i syntaksen?

Det er muligt, at min kode er forældet, og
jeg vil da også gerne have hjælp til at
forny den ;-)

Nogen, der kan hjælpe?

På forhånd tak.
Avatar billede roenving Novice
09. juli 2008 - 00:17 #1
For det første, kan det ikke på nuværende tidspunkt anbefales at bruge xhtml til nogetsomhelst med formularer og check af input, da de nuværende metoder til at aflæse felternes indhold burde returnere det indhold de havde, da formularen blev loadet ...

-- og da xhtml i versionerne indtil nu, nærmest må være at betragte som en eksperimentel standard, er der også adskillige andre grunde til at undgå at bruge den, brug du den eneste nogenlunde gennemarbejdede: html4.01 !-)

-- i xhtml 2 skulle xForms være indarbejdet, og så kan vi igen begynde at bruge den nyeste standard til form-behandling !o]

-- og i forhold til xhtml er der adskillige problemer i det, du viser ...

-- scripts bør ikke ligge i dokumentet, men lægges ud i eksterne filer, du bør bruge en konstruktion til din load-handler, der ligger i javascriptet (det, der i html4.01 hedder window.onload, men ser betydeligt anderledes ud, hvis den fuldt skal godkendes i forhold til de nyeste DOM-definitioner !-)

Og så er din html i øvrigt skrevet i en blanding af html3.2, html4.01 og en ganske lille bitte smule xhtml, og da ingen browsere idag er i stand til at fortolke xhtml som andet end stærkt fejlfyldt html4.01 er der slet ingen grund til at kaste sig over et sådant projekt med xhtml !o]
Avatar billede w13 Novice
09. juli 2008 - 00:18 #2
Stol ikke på w3schools. :) Så hellere w3c's egen validator: http://validator.w3.org/

Hvad angår:
document.kontaktform.name.focus()
så er det meget sikrere med getElementById():
document.getElementById("kontaktname").focus()

Så skal du bare sætte id="kontaktname" på feltet "name".

Og ja, under alle omstændigheder skal document med.
Avatar billede bas Forsker
09. juli 2008 - 00:26 #3
Mange tak for jeres indlæg.

Ok, jeg bør nok starte med at sikre mig, at
min kode passer til HTML 4.01 i stedet.

Så vil jeg prøve det med
document.getElementById("kontaktname").focus()

Og ja i stedet bruge http://validator.w3.org/
Avatar billede bas Forsker
10. juli 2008 - 13:40 #4
Hej

Mange tak for hjælpen, jeg har fået
det til at virke med
<body onload="document.getElementById('kontaktname').focus();">

w13, poster du et svar.

Mvh. Martin
Avatar billede w13 Novice
10. juli 2008 - 14:02 #5
Kommer her! :)
Avatar billede w13 Novice
10. juli 2008 - 14:39 #6
Tak for point!
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