[XHTML] onverklaarbare foutmelding in w3 validator

Pagina: 1
Acties:

  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 20-08 15:03
Ik probeer mijn pagina zonder fouten door de w3 validator te krijgen. Onderstaand stukje code blijkt echter niet correct.

code:
1
2
3
4
<form action="dummy.php" method="get" id="clock" class="klok">
<input type="text" class="text" name="date" size="20" value="" /><br />
<input type="text" class="text" name="time" size="20" value="" />
</form>


URL test-pagina
http://www.ontmoetingskerkonline.nl/test_hervormd/test.html

URL W3 validator resultaat
http://validator.w3.org/c...automatically%29#line-220

Weet iemand de oplossing voor de problemen de validator aandraagt ?
Alvast bedankt.

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


  • DUX
  • Registratie: September 2002
  • Laatst online: 21:59

DUX

blijft ook nu voor Oranje

Wat doen die slashes daar op het einde? Ze staan achter value=" " en in de br-tag...

edit:
Die X in de titel zou het wel kunnen verklaren ja :p

[ Voor 47% gewijzigd door DUX op 08-07-2003 22:38 ]

.    < G o o o o o o o o g l e >
Vorige 1 2 3 4 5 6 7 8 Volgende


Verwijderd

DUX schreef op 08 July 2003 @ 22:31:
Wat doen die slashes daar op het einde? Ze staan achter value=" " en in de br-tag...
Zie je de topictitel? Daarin staat XHTML :)

Antwoord op vraag van topicstarter:
Een form kan niet direct een input bevatten. Directe children moeten block-level elementen zijn, zoals een fieldset, div, p, ul, ol, dl, table of andere geschikt element om data netjes te ordenen.

[ Voor 36% gewijzigd door Verwijderd op 08-07-2003 22:34 ]


Verwijderd

jah das echt het enige wat ik ook zou zeggen, die slashes moeten gegarrandeert weg.(dyslectisch)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:56

crisp

Devver

Pixelated

DUX schreef op 08 juli 2003 @ 22:31:
Wat doen die slashes daar op het einde? Ze staan achter value=" " en in de br-tag...
die horen daar :)

anyway, de foutmelding die je krijgt is omdat xhtml voorschrijft dat form-elementen in een blocklevel element horen te staan.
Een beetje vreemde redenering als je het mij vraagt, maar je kan het dus oplossen door elk element in een <div> een <p> of zelfs in een fieldset te zetten.

en dit hoort in /13 trouwens...

[ Voor 3% gewijzigd door crisp op 08-07-2003 22:35 ]

Intentionally left blank


  • tomato
  • Registratie: November 1999
  • Niet online
Pieter.txt schreef op 08 July 2003 @ 22:28:
Weet iemand de oplossing voor de problemen de validator aandraagt ?
Euhm.... meldingen lezen en die opvolgen :?

(je zult je form elementen dus ergens in moeten zetten, bijvoorbeeld een 'p' of een 'fieldset')

[edit] Beetje laat :)

[ Voor 8% gewijzigd door tomato op 08-07-2003 22:37 ]


Verwijderd

"ins", "del", "h1", "h2", "h3", "h4", "h5", "h6", "p", "div", "address", "fieldset" daar moet het tussen..

wat je beter ook kan doen is al het javascript en css in een extern bestandje zetten...

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Zullen we dit doen in het forum waar het hoort? :P
P&W -> W&G

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:56

crisp

Devver

Pixelated

Verwijderd schreef op 08 July 2003 @ 22:37:
"ins", "del", "h1", "h2", "h3", "h4", "h5", "h6", "p", "div", "address", "fieldset" daar moet het tussen..

wat je beter ook kan doen is al het javascript en css in een extern bestandje zetten...
daarmee omzeil je alleen de melding van de validator, maar het blijft net zo fout.

Intentionally left blank


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:56

crisp

Devver

Pixelated

zie trouwens dit topic, daar wordt dit fenomeen uitgebreid besproken (toen kwam ik zelf met de vraag ;) ):[rml][ HTML] Fouten bij W3C Validatie[/rml]

Intentionally left blank


  • Johnny
  • Registratie: December 2001
  • Laatst online: 21:11

Johnny

ondergewaardeerde internetguru

crisp schreef op 08 July 2003 @ 22:39:
[...]

daarmee omzeil je alleen de melding van de validator, maar het blijft net zo fout.
Nee, dat MOET in XHTML!

Daarnaast is het ook nog veel handiger ivb met caching enz.

Edit: Mijn opmerking gaat over het plaatsen van javascripts in externe bestanden.

[ Voor 14% gewijzigd door Johnny op 09-07-2003 22:40 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Verwijderd

Johnny schreef op 09 July 2003 @ 00:42:

Nee, dat MOET in XHTML!

Daarnaast is het ook nog veel handiger ivb met caching enz.
crisp heeft gewoon gelijk hoor, dus waar heb je het nou over?

Geef maar een linkje naar www.w3.org waar je wordt aangeraden om de inhoud van een form te 'includen' met een scriptje. Als je zo'n linkje kunt vinden, dan eet ik m'n schoenen op.

Verwijderd

Verwijderd schreef op 08 July 2003 @ 22:33:
jah das echt het enige wat ik ook zou zeggen, die slashes moeten gegarrandeert weg.(dyslectisch)
:D _/-\o_ met zijn allen , we hebben een x, we hebben een h, .... XHTML ..

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:56

crisp

Devver

Pixelated

Verwijderd schreef op 08 July 2003 @ 22:37:
"ins", "del", "h1", "h2", "h3", "h4", "h5", "h6", "p", "div", "address", "fieldset" daar moet het tussen..

wat je beter ook kan doen is al het javascript en css in een extern bestandje zetten...
misschien las ik het verkeerd, en is de 2e regel eigenlijk offtopic bedoeld als: je kan het beste javascript en css extern includen. En niet als: je kan het beste je form door een scriptje generen.

Anyway, dat dat MOET in XHTML is natuurlijk onzin, maar het is inderdaad wel good practice om scripts of CSS die je regelmatig hergebruikt in een extern bestand te zetten :)

Intentionally left blank


  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 20-08 15:03
javascript in een extern bestand moet idd nog gebeuren maar een groot gedeelte van de css-code kan niet in een extern bestand, aangezien ik de height en/of width waardes daarvan aanpas en dat kan in een aantal browsers (o.a. Opera) niet bij css-code uit een extern bestannd. Maar goed, dat terzijde.

Ik heb w3schools erop nagekeken, maar daar wordt geen melding gemaakt van een of andere regel dat xhtml voorschrijft dat form-elementen in een blocklevel element horen te staan. Waar kan ik hierover info vinden ?

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


Verwijderd

Pieter.txt schreef op 09 juli 2003 @ 09:13:
javascript in een extern bestand moet idd nog gebeuren maar een groot gedeelte van de css-code kan niet in een extern bestand, aangezien ik de height en/of width waardes daarvan aanpas en dat kan in een aantal browsers (o.a. Opera) niet bij css-code uit een extern bestannd. Maar goed, dat terzijde.
:? Dit begrijp ik niet? Kun je dat iets beter uitleggen?
Ik heb w3schools erop nagekeken, maar daar wordt geen melding gemaakt van een of andere regel dat xhtml voorschrijft dat form-elementen in een blocklevel element horen te staan. Waar kan ik hierover info vinden ?
Goede vraag. Ik heb er ook nog nooit van gehoor, maar ben er naar op zoek.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:56

crisp

Devver

Pixelated

Verwijderd schreef op 09 July 2003 @ 10:40:
[...]
Goede vraag. Ik heb er ook nog nooit van gehoor, maar ben er naar op zoek.
http://www.zvon.org/xxl/x...ce/Output/comparison.html

en volgens de strict DTD kunnen inderdaad alleen blocklevel elementen child zijn van het form-element.

Intentionally left blank


Verwijderd

crisp schreef op 09 July 2003 @ 10:49:
[...] en volgens de strict DTD kunnen inderdaad alleen blocklevel elementen child zijn van het form-element.
Ja, ehhm...dat DTD-lezen heb ik ook nog niet helemaal door :o

/me doet nog een poging

Oh, wacht, nu zie ik het!

DTD:
1
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
  • "- -" = start en end-tag required
  • "(%block;|SCRIPT)+" = moet minstens 1 block-level element of script element als kind hebben
  • "-(FORM)" = mag geen form als kind hebben
Die %block doet 't em, denk ik... :P Dit is trouwens dus al zo sinds HTML 4.0.

/me wordt ooit nog wel eens een ubernerd

  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 20-08 15:03
Verwijderd schreef op 09 July 2003 @ 10:40:
[...]

:? Dit begrijp ik niet? Kun je dat iets beter uitleggen?
Met "document.styleSheets[xxxx]" kun je een gelinked of embedded stylesheet opvragen en vervolgens definities wijzigen. Dit werkt echter niet in Opera 7 (en voorgangers). Deze browser kan dit alleen bij embedded stylesheets. Dus daarom kan css-code er niet uit.
Javascript is er inmiddels uit.

Ik heb overigens het gehele probleem opgelost met een fieldset-tag + class-attribuut waarmee ik de border van de fieldset op 0px zet. Enigszins omslachtig maar het werkt.

Bedankt voor de hulp allemaal.

edit:
Ik bedenk me opeens dat de css-code er wel uit kan |:(
De javascript-code die ik nu gebruik zoekt gewoon de juiste id (getElementById etc.) op en veranderd niet meer direct de definitie in de stylesheet.
CSS-code gaat er dus ook uit :)

[ Voor 19% gewijzigd door Pieter.txt op 09-07-2003 18:29 ]

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


Verwijderd

Pieter.txt schreef op 09 July 2003 @ 18:25:

Ik heb overigens het gehele probleem opgelost met een fieldset-tag + class-attribuut waarmee ik de border van de fieldset op 0px zet. Enigszins omslachtig maar het werkt.
Waaruit blijkt dat je dus niets hebt begrepen van het hoe en waarom van HTML. Waarom wil je je code dan toch 'door de w3 validator krijgen'?
Waarom zou die validator toch die foutmelding produceren? Niet om het extra moeilijk voor je te maken hoor, enkel en alleen omwille de HTML structuur van je pagina. En die is nu hoogstwaarschijnlijk nog steeds niet in orde. :)

Verwijderd

Verwijderd schreef op 09 juli 2003 @ 21:13:
Waaruit blijkt dat je dus niets hebt begrepen van het hoe en waarom van HTML. Waarom wil je je code dan toch 'door de w3 validator krijgen'?
Waarom zou die validator toch die foutmelding produceren? Niet om het extra moeilijk voor je te maken hoor, enkel en alleen omwille de HTML structuur van je pagina. En die is nu hoogstwaarschijnlijk nog steeds niet in orde. :)
Waarmee Cheatah op zijn eigen manier wil zeggen: gebruik een DIV-element.

HTML elementen gebruik je niet zomaar; een FIELDSET heeft z'n eigen speciale betekenis en moet ook een LEGEND bevatten (om aan te geven wat de betekenis is van de FIELDSET). Als je niet een element zoekt met specifiek die betekenis, gebruik dan een 'betekenisloos' element.

Zie het als zout, peper en andere kruiden. Die gooi je ook niet zomaar door je eten als je proeft dat het niet helemaal lekker is.

  • rollebol
  • Registratie: Mei 2000
  • Laatst online: 09-06 12:38
Verwijderd schreef op 09 July 2003 @ 22:19:
[...]

Zie het als zout, peper en andere kruiden. Die gooi je ook niet zomaar door je eten als je proeft dat het niet helemaal lekker is.
offtopic:
Slecht voorbeeld, want werkt in de praktijk prima. :)

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 17:28

alienfruit

the alien you never expected

Ik los zulke problemen altijd om door een eigen DTD te maken, dat heb ik bijvoorbeeld ook gedaan om een paar van die koele HTML trucjes toch te krijgen. Zoals LeftMargin/TopMargin etc. Zodat de pagina er ook nog mooi uitzietin de oudere browsers en toch nog XHTML X.Yq is :)

Verwijderd

Verwijderd schreef op 09 July 2003 @ 22:19:

Waarmee Cheatah op zijn eigen manier wil zeggen: gebruik een DIV-element.
Nou... nee.

Wat ik wil zeggen is dat als je wilt dat je pagina's door de validator komen, je dat wilt omdat je correcte HTML wilt produceren. Echter is lang niet alles dat door de validator komt correcte HTML. Ja, natuurlijk, de syntax en het gebruik van HTML tags zijn dan legaal, maar niet per se ook optimaal.

De validator kan je namelijks niets zeggen over de accessibility van je pagina.
HTML elementen gebruik je niet zomaar; een FIELDSET heeft z'n eigen speciale betekenis en moet ook een LEGEND bevatten (om aan te geven wat de betekenis is van de FIELDSET). Als je niet een element zoekt met specifiek die betekenis, gebruik dan een 'betekenisloos' element.
Een fieldset in een form kan eigenlijk bijna altijd wel, het heeft alleen niet altijd veel toegevoegde waarde. Met een form tag geef je aan hoe het formulier verwerkt moet worden, met een fieldset element zeg je iets over een deel van het formulier. Je kunt bijvoorbeeld persoonsgegevens en een vragenlijst van elkaar scheiden, voor het overzicht en gebruikersgemak.

Onder het linkje van crisp wordt het wel duidelijk dat ik vind dat je best een bepaalde structuur binnen je form mag gebruiken, ipv het maken van een container element 'omdat het moet' en er vervolgens weer dezelfde kolerezooi in te gooien :)

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

alienfruit schreef op 09 July 2003 @ 22:28:
Ik los zulke problemen altijd om door een eigen DTD te maken, dat heb ik bijvoorbeeld ook gedaan om een paar van die koele HTML trucjes toch te krijgen. Zoals LeftMargin/TopMargin etc. Zodat de pagina er ook nog mooi uitzietin de oudere browsers en toch nog XHTML X.Yq is :)
Hm, dat vind ik wel een vorm van jezelf voor de gek houden :P Zo kan je idd alles wel laten valideren, je schrijft gewoon je eigen DTD. Xhtml is juist xhtml omdat die left/topmargin meuk etc er niet meer inzit. dat is niet om jou te pesten, dat is omdat een margin iets over layout zegt, en dat hoort niet in een body tag, net als er in een img tag geen border hoort in xhtml.
Als je dat erbij zet in je eigen DTD kan je het wel xhtml noemen, maar dat is het dan imo niet meer.

Overigens dacht ik dat DTD's oud waren, en XSD het ging vervangen? Hoe zat dat precies?

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Clay schreef op 09 juli 2003 @ 22:57:

Overigens dacht ik dat DTD's oud waren, en XSD het ging vervangen? Hoe zat dat precies?
DTD's kunnen niet alles beschrijven. Een a element mag geen a element als descendant hebben, voor een form geldt hetzelfde. Maar met een DTD kan dat niet worden aangegeven. Wat dat betreft zijn DTD's dus oud, ze voldoen niet, ze zijn wat onhandig, en met XML Schema of Relax NG zou het allemaal beter kunnen.

Verwijderd

Voor diegenen die een wat leesbaardere geparsde DTD zoeken, zie http://cscie12.dce.harvar...tml1/strict/elements.html.

Daar zie je dus precies voor elk element waar hij in mag en welke in hem mogen en wat voor atributen hij heeft...

[ Voor 31% gewijzigd door Verwijderd op 09-07-2003 23:26 ]


  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 20-08 15:03
Verwijderd schreef op 09 July 2003 @ 21:13:
[...]

Waaruit blijkt dat je dus niets hebt begrepen van het hoe en waarom van HTML. Waarom wil je je code dan toch 'door de w3 validator krijgen'?
Waarom zou die validator toch die foutmelding produceren? Niet om het extra moeilijk voor je te maken hoor, enkel en alleen omwille de HTML structuur van je pagina. En die is nu hoogstwaarschijnlijk nog steeds niet in orde. :)
Voor zover ik weet is mijn pagina in orde. Ik heb hem gemaakt volgens de aanwijzingen op w3schools. Maar zelfs daar stond niets over de opmerkingen die de validator maakte over mijn gebruik van de form-tag.
Verder is kritiek hebben makkelijk, maar als jij zegt dat mijn pagina niet goed in elkaar zit (even afgezien van dat stukje met het formulier) dan wil ik wel eens van jou weten wat jij niet goed vind !

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


Verwijderd

Oh, sorry :)
Wat ik wil zeggen is dat als je wilt dat je pagina's door de validator komen, je dat wilt omdat je correcte HTML wilt produceren. Echter is lang niet alles dat door de validator komt correcte HTML. Ja, natuurlijk, de syntax en het gebruik van HTML tags zijn dan legaal, maar niet per se ook optimaal.

De validator kan je namelijks niets zeggen over de accessibility van je pagina.

Een fieldset in een form kan eigenlijk bijna altijd wel, het heeft alleen niet altijd veel toegevoegde waarde. Met een form tag geef je aan hoe het formulier verwerkt moet worden, met een fieldset element zeg je iets over een deel van het formulier. Je kunt bijvoorbeeld persoonsgegevens en een vragenlijst van elkaar scheiden, voor het overzicht en gebruikersgemak.
Da's helemaal waar. Wat ik probeerde te zeggen was: als je een fieldset gebruikt alleen om een block-level component te hebben voor je inputs ben je goed bezig maar gebruik dan liever een DIV.

Als je een fieldset gebruikt (in combinatie met een goede structuur en duidelijke legend-tags om structuur en betekenis in je form te stoppen dan ben je nog beter bezig.
Onder het linkje van crisp wordt het wel duidelijk dat ik vind dat je best een bepaalde structuur binnen je form mag gebruiken, ipv het maken van een container element 'omdat het moet' en er vervolgens weer dezelfde kolerezooi in te gooien :)
Mee eens, maar ik dacht dat TS vast geen zin had om opnieuw te gaan nadenken over de structuur van z'n formulier. Ik vind het al fantastisch als er iemand probeert syntactisch correcte (validerende) (X)HTML te schrijven. Semantisch correcte (X)HTML durf ik eigenlijk nog niet eens te vragen ;)
Pagina: 1