/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
xHTML strict: problemer med input-element
Fra : Jesper Stocholm


Dato : 14-11-02 23:33

Jeg har noget xHTML-kode, som jeg ikke kan få til at validere som xHTML.
Det undrer mig dog meget, da jeg ganske enkelt ikke kan se, hvor det er
fejlen kommer fra. Min html-kode er:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">

<html>
<head>

<meta name="GENERATOR" content="Microsoft Visual Studio 7.0" />
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<title></title>
</head>
<body>
<table width="760" >
<tr>
<td align="right">
<form method="get" action="/search">
<input type="text" name="query" />
<input checked="checked" type="radio" name="search"
value="dftg" />
<select id="Select1" name="ffsdrt">
<option/>
</select>
</form>
</td>
</tr>
</table>
</body>
</html>

Fejlen jeg får er, at den brokker sig over mit første input-element med
årsagen

Error: element "input" not allowed here; possible cause is an inline
element containing a block-level element

Men hvorfor det ? Hvad er det jeg mangler ? Hele siden kan ses på
http://stocholm.dk/test/input.html, hvorpå der i siden er et link til
validator hos w3.org



--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

 
 
Andreas Haugstrup Pe~ (15-11-2002)
Kommentar
Fra : Andreas Haugstrup Pe~


Dato : 15-11-02 01:20

Jesper Stocholm <jespers@stocholm.invalid> wrote in
news:Xns92C6EF7D55D6Espamstocholmdk@130.226.1.34:

> Fejlen jeg får er, at den brokker sig over mit første input-element med
> årsagen
>
> Error: element "input" not allowed here; possible cause is an inline
> element containing a block-level element

Læg et <div> omkring dine <input>

Noget ala:

<form ..>
   <div>
       <input .. />
   </div>
</form>

--
Andreas
<http://www.solitude.dk>

Lasse Reichstein Nie~ (15-11-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 15-11-02 01:56

Andreas Haugstrup Pedersen <usenet@solitude.dk> writes:

> Jesper Stocholm <jespers@stocholm.invalid> wrote in
> news:Xns92C6EF7D55D6Espamstocholmdk@130.226.1.34:
>
> > Error: element "input" not allowed here; possible cause is an inline
> > element containing a block-level element

Fejlen er faktisk ca. det modsatte, et form element der indeholder
inline-elementer.

> Læg et <div> omkring dine <input>

Det vil virke.

Grunden er at en xHTML form kun kan indeholde block-elementer og ikke
inline-elementer. Input-felter er typisk inline-elementer.

Grunden til det er nok at man ikke bør lave inputfelter uden forklaring :)
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Andreas Haugstrup Pe~ (15-11-2002)
Kommentar
Fra : Andreas Haugstrup Pe~


Dato : 15-11-02 02:02

Lasse Reichstein Nielsen <lrn@hotpop.com> wrote in
news:lm3vtzwb.fsf@hotpop.com:

> Grunden er at en xHTML form kun kan indeholde block-elementer og ikke
> inline-elementer. Input-felter er typisk inline-elementer.
>
> Grunden til det er nok at man ikke bør lave inputfelter uden forklaring

Det havde jeg ikke tænkt på. Det lyder som en god forklaring, men jeg køber
den ikke helt

Hvis der var derfor skulle følgende logisk set være validt:

<form ..>
   <label for="input">Label</label>
   <input id="input" />
</form>

Der er da netop en forklaring

Ved nærmere eftertanke burde det nok være:

<form ..>
   <fieldset>
       <label for="input">Label</label>
       <input id="input" />
   </fieldset>
</form>

Jeg har dog ikke tjekket om det er validt.
--
Andreas
<http://www.solitude.dk>

Lasse Reichstein Nie~ (15-11-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 15-11-02 02:11

Andreas Haugstrup Pedersen <usenet@solitude.dk> writes:

> Det havde jeg ikke tænkt på. Det lyder som en god forklaring, men jeg køber
> den ikke helt

Det var også bare et forsøg på at gætte hvad de havde tænkt da de
lavde den definition :)

> Hvis der var derfor skulle følgende logisk set være validt:
>
> <form ..>
>    <label for="input">Label</label>
>    <input id="input" />
> </form>
>
> Der er da netop en forklaring

Ja, og det er det heller ikke (label er også et inline-element).

> Ved nærmere eftertanke burde det nok være:
>
> <form ..>
>    <fieldset>
>        <label for="input">Label</label>
>        <input id="input" />
>    </fieldset>
> </form>
>
> Jeg har dog ikke tjekket om det er validt.

Det burde det nok være så, for det ser umiddelbart helt gyldigt ud.
Fieldset er et block-element, så det er lovligt inden i form, og
fieldsets kan indeholde inline-elementer.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Jesper Stocholm (15-11-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 15-11-02 09:28

Andreas Haugstrup Pedersen wrote :

> Lasse Reichstein Nielsen <lrn@hotpop.com> wrote in
> news:lm3vtzwb.fsf@hotpop.com:

> Ved nærmere eftertanke burde det nok være:
>
> <form ..>
> <fieldset>
> <label for="input">Label</label>
> <input id="input" />
> </fieldset>
> </form>
>
> Jeg har dog ikke tjekket om det er validt.

det er det ... jvf w3.org ... men det giver sådan en grim kant omkring
indholdet af fieldset-elementet, derfor valgte jeg <div>-forslaget. Den
smule html-kode jeg smækkede sammen for at teste det ser i øvrigt
skrækkelig ud i Mozilla. I den oprindelige version af min formular, er
der da også beskrivelserne til felterne med, men jeg kunne se, at svaret
far validatoren ikke var afhængig af om de var der eller ej. Derfor
fjernede jeg dem for at gøre det klarere og mere overskueligt.



Mange tak for hjælpen ...

--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

Søg
Reklame
Statistik
Spørgsmål : 177507
Tips : 31968
Nyheder : 719565
Indlæg : 6408569
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste