Avatar billede minus Nybegynder
03. juni 2008 - 14:56 Der er 17 kommentarer og
1 løsning

Hvorfor kan følgende ikke valideres?

Hej,

Jeg har forsøgt at validere en side, men får nogle fejl, som jeg ikke helt, kan påpege, hvor de er.

Nogen som kan forklare, mig hvor fejlene er, samt hvordan de rettes?

Siden er forresten skrevet i XHTML 1.1, CSS og programmering er i PHP.

---------------------

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<title>Barberen - Gentlemen's place | Administration</title>

<link href="../css/admincss.css" rel="stylesheet" type="text/css" />

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script src="../script/js/textbox.js" type="text/javascript"></script>

</head>
<body>

<div id="header">
</div>

<div id="indhold">
<h3>Skriv eller rediger tekst på forsiden</h3>


<form action="?resultat=true" method="post">
<textarea id="message" name="message" rows="16" cols="80"></textarea><br />
<input type="submit" name="update" value="Skriv!" />
</form>


<br /><br />
<a href="index.php">- Tilbage til forsiden for administration</a>


</div>

</body>
</html>

----------------
Så hvis nogen ville prøve at indtaste ovenstående kode ind på http://validator.w3.org/#validate_by_input og fortælle, hvad fejlen er, ville det være meget fedt :)

Tak på forhånd :)
Avatar billede minus Nybegynder
03. juni 2008 - 15:03 #1
(det ovenstående er koden der bliver vist, når siden bliver loaded i browseren)
Avatar billede w13 Novice
03. juni 2008 - 15:04 #2
Nu er det jo sådan, at validatoren fortæller dig, hvor fejlene er. ;)

Første fejl er, at i XHTML må et textarea ikke bare ligge inde i en <form>. Du skal have f.eks. en <p> rundt om dine felter.

Resten af fejlene er faktisk det samme. Dit <br> og dit inputfelt må heller ikke bare ligge direkte i <form>-tag'et. Prøv at rette:

<form action="?resultat=true" method="post">
<textarea id="message" name="message" rows="16" cols="80"></textarea><br />
<input type="submit" name="update" value="Skriv!" />
</form>

til:

<form action="?resultat=true" method="post">
<p><textarea id="message" name="message" rows="16" cols="80"></textarea><br />
<input type="submit" name="update" value="Skriv!" />
</p>
</form>

og se om det hjælper.
Avatar billede mclemens Nybegynder
03. juni 2008 - 15:30 #3
Forhåbentlig outputtes det ikke ved besøg med IE.
At lave en side med IE i quirks mode er ik' fedt.
Jeg formoder at du leverer xhtml siden som xhtml
for de browsere der "understøtter" xhtml ... ?
Avatar billede minus Nybegynder
03. juni 2008 - 15:40 #4
mclemens --> Det må du lige formulere til en nybegynder som jeg :) Forstod ikke det helt store, af hvad du spurgte om :P

w13 --> Ahh, det kan jeg se :) Så virker det.

Lige en sidste ting, har en lignende side, hvor der er javascript med i koden. Hvordan validerer man det?

-------------

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<title>Barberen - Gentlemen's place | Administration</title>

<link href="../css/admincss.css" rel="stylesheet" type="text/css" />

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script src="../script/js/textbox.js" type="text/javascript"></script>

</head>
<body>

<div id="header">
</div>

<div id="indhold">
<h3>Tilføj eller rediger nyheder</h3>
<i>Nyheder vises på højre side af barberens hjemmeside.<br />
Indholdet er begrænset til 300 tegn, så det ikke overskrider kassens størrelse.</i><br /><br />
Der kan anvendes fed skrift til overskriften ved at skrive det således: <b>&lsaquo;b&rsaquo;</b>Overskrift<b>&lsaquo;&frasl;b&rsaquo;</b>
<br /><br />

<form action="?resultat=true" method="post">
<p><textarea name="message" rows="13" cols="50"
onKeyDown="textCounter(this.form.message,this.form.remLen,300);" onKeyUp="textCounter(this.form.message,this.form.remLen,300);"
></textarea></p>
<p><input readonly type=text name=remLen size=3 maxlength=3 value="300"> Tegn tilbage</p>
<p><input type="submit" name="update" value="Skriv!" /></p>
</form>


<br />
<a href="index.php">- Tilbage til forsiden for administration</a>


</div>

</body>
</html>

----------
Avatar billede w13 Novice
03. juni 2008 - 15:42 #5
Der findes ikke en javascript-validator.

Hvis du har slået visning af javascript-fejl til - og ikke får nogen - er du et da et skridt på vej.
Avatar billede w13 Novice
03. juni 2008 - 15:45 #6
Men jeg ville nok rette:

onKeyDown="textCounter(this.form.message,this.form.remLen,300);" onKeyUp="textCounter(this.form.message,this.form.remLen,300);"

til:

onkeydown="textCounter(this,this.form.remLen,300);" onkeyup="textCounter(this,this.form.remLen,300);"

onkeydown og onkeyup må - ligesom onclick, onmouseover og alle deres venner - ikke indeholde store bogstaver i XHTML. Det må alle andre attributnavne i det hele taget heller ikke.

Derudover bruger jeg "this" fremfor "this.form.message". Du henviser til elementet "message", men da det er det samme element som koden køres på, kan man bare bruge "this".

Til sidst bør du rette denne:

<input readonly type=text name=remLen size=3 maxlength=3 value="300">

til:

<input readonly="readonly" type="text" name="remLen" size="3" maxlength="3 value="300">

Dvs. readonly _skal_ være readonly="readonly" og attributters indhold skal være omkranset af anførselstegn i XHTML.
Avatar billede w13 Novice
03. juni 2008 - 15:46 #7
Hov, dette:

<input readonly type=text name=remLen size=3 maxlength=3 value="300">

skal være:

<input readonly="readonly" type="text" name="remLen" size="3" maxlength="3 value="300" />

Bemærk skråstregen til sidst.
Avatar billede minus Nybegynder
03. juni 2008 - 15:48 #8
w13 --> Kan det ikke skjules på en måde således at w3s service igonerer javascripten?

Har forsøgt at lukke det ind i: <![CDATA[    ]] >
Avatar billede mclemens Nybegynder
03. juni 2008 - 15:53 #9
Du validerer ikke javascript - eller rettere du læser det og kigger
i taskbaren på IE om der kommer fejl og under FF i funktioner fejlkonsol.

...

<?xml version="1.0" encoding="iso-8859-1"?>
deaktiverer en masse css understøttelse i IE
Se evt. http://www.eksperten.dk/spm/719030
(Bemærk der er fejl i den ene udgave derinde)

- Husk på at 1 fejl i xhtml og siden kan ikke vises...
Medmindre man slet ikke "kører" det som xhtml - hvilket
jo er tilfælde med IE der ikke "understøtter" xhtml.

Se evt. nedenstående fil i IE6 og FF

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<title>Barberen - Gentlemen's place | Administration</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<div style="background:#f00;width:25px;height:100;padding:10px;margin:50px;">&nbsp;</div>
<div style="background:#f00;width:25px;height:100;padding:10px;margin:50px;">&nbsp;</div>

</body>
</html>

... slet så <?xml version="1.0" encoding="iso-8859-1"?> og se IE6 igen.
- Under IE7 slår ovenstående linje ikke css compatibiliteten fra ...
Avatar billede w13 Novice
03. juni 2008 - 16:01 #10
minus>> w3c fanger da ikke JavaScripten så vidt jeg ved? Så du burde slet ikke være nødt til at "gemme" javascripten.

Under alle omstændigheder: hvis w3c siger, at din JavaScript er forkert, når den er rigtig, hvorfor vil du så bruge deres validator? I så fald ta'r den jo fejl.

Mange betragter validatoren på w3c som et must at bestå, men den giver i virkeligheden bare guidelines for, hvordan man bør opbygge sit websites. Og af og til brokker den sig over ting, der bare ikke er noget at gøre ved.
Avatar billede minus Nybegynder
03. juni 2008 - 19:20 #11
w13--> Har det på samme måde, at hvis det virker, så er validering lidt unødvendig. Men dette er til et projekt, hvor jeg skal aflevere et 100% validerbar kode. Selv en fejl, kan jeg, desværre, blive slået ned på. :(
Avatar billede erikjacobsen Ekspert
03. juni 2008 - 19:30 #12
Er det så også et krav til skoleopgaven, at det skal være XHTML? Der er, som Olebole skriver i sine artikler, egentlig ingen fornuftig grund til at gøre det, men derimod mange gode grunde til ikke at gøre det.
Avatar billede minus Nybegynder
03. juni 2008 - 19:39 #13
erikjacobsen --> Ja nemlig. Det er påkrævet at vi kan aflevere en valid opgave i xhtml og css. :/
Avatar billede minus Nybegynder
03. juni 2008 - 21:16 #14
Accepterer lige dit svar w13 :) glemte jeg lige..
Men hjælp ønskes stadig til siden med javascript på :)
Avatar billede w13 Novice
03. juni 2008 - 23:16 #15
Men hvad er problemet med javascriptet? Er det ikke fint?
Avatar billede roenving Novice
04. juni 2008 - 00:13 #16
-- i xhtml bør både style og script-tags undgås med kode, i stedet bør man bruge en ekstern fil !-)
Avatar billede minus Nybegynder
04. juni 2008 - 09:28 #17
Jeg fik hjælp til validering af en kammerat:

-----

<form action="?resultat=true" method="post">
<p><textarea name="message" rows="9" cols="50"
onkeydown="java script:textCounter(this.form.message,this.form.remLen,300);" onkeyup="java script:textCounter(this.form.message,this.form.remLen,300);"
></textarea></p>
<p><input readonly="readonly" id="remLen" size="3" maxlength="3" value="300" /> Tegn tilbage</p>
<p><input type="submit" name="update" value="Skriv!" /></p>
</form>

------
Avatar billede w13 Novice
04. juni 2008 - 09:39 #18
Du kan ligeså godt fjerne "java script:". Det fortæller blot, at den efterfølgende kode er JavaScript, og det er onkeydown og onkeyup jo som standard, så det er bare 11 tegn ekstra, som ikke gør nogen forskel.
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