webForumDet fria alternativet

Varför kan man inte skapa felfria formulär i Dreamweaver?

HTML & CSS

10 svar · 1 444 visningar · startad av jasifil

Medlem sedan okt. 200932 inlägg
Frågan#1

Jag har för avsikt att bygga min sida enligt xhtml-strict men när jag skapar ett formulär på en sida med doctype xhtml-strict så blir det en väldans massa fel vid valideringen. Någon som vet om standarden inte stödjer formulär eller hur är det med detta? Visar koden om någon nu orkar kolla igenom den.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test formulär</title>
</head>

<body>
<form id="form1" method="post" action="http://mindomän.se/cgi-bin/FormMail.pl">
  <label for="name">Ange ditt namn:</label>
  <br />
  <input name="name" type="text" id="name" size="20" />
  <br />
  <br />
  <label for="email">Ange din epostadress:</label>
  <br />
  <input name="email" type="text" id="email" size="20" />
  <br />
  <br />
  <label for="text">Skriv ditt meddelande här:<br />
  </label>
  <textarea name="text" id="text" cols="50" rows="8"></textarea>
  <br />
  <br />
  <label for="Skicka"></label>
  <input type="submit" name="Skicka" id="Skicka" value="Submit" />
  <label for="Rensa fält"></label>
  <input type="reset" name="Rensa fält" id="Rensa fält" value="Reset" />
  <input name="recipient" type="hidden" id="recipient" value="mittnamn@mindomän.se" />
  <input name="redirect" type="hidden" id="redirect" value="http://www.mindomän.se/message.html" />
  <br />
</form>
</body>
</html>

Ett av de vanligaste felmeddelandena är:

Line 11, Column 55: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag

Kan man blanda olika standarder på en sida, om man nu vill följa standarden vill säga? T.ex. om jag kör alla sidor utom formulärsidorna med strict och den sistnämnda enligt transitional.

Medlem sedan feb. 20034 441 inlägg
#2

Men har du ens validerat koden och framför allt, har du läst vad resultatet säger? Jag tror inte att du gjort det:

document type does not allow element "label" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag

Du har ~30 förekomster av det där t.ex.

Alltså, du kan inte ha en <label> på det där sättet, du måste t.ex. göra såhär istället:

<p><label for="myField">Fält:</label><br />
<input id="myField" type="text" ... /></p>

Då kommer det fungera.
Sen är det förbjudet att ha en label som heter "Rensa Fält", använd hellre Engelska namn eller så som ID'n så behöver du aldrig bry dig om ÅÄÖ.

Medlem sedan okt. 200932 inlägg
#3

Tack för ditt snabba svar. Ska testa det du skriver. Det som förbryllar mig är att eftersom jag anger vilken standard jag vill använda redan när jag öppnar ett tomt dokument i Dreamweaver så trodde jag att programmet ser till att standarden följs. Särskilt som jag bygger formuläret via DW:s inbyggda funktioner.

Kan man validera koden direkt i DW eller måste man som jag gör nu gå via W3C? Dessutom tycker jag att de där felmeddelandena är svårtolkade ibland.

Menar du även att man inte kan ha svensk text på knappar? Alltså åäö?

/Janne

Medlem sedan feb. 20034 441 inlägg
#4

Jasså, ursäkta om jag lät arg nyss, snappade aldrig att du använde Dreamweaver. Jag kan inte ett dyft om DW, så någon annan får hjälpa dig med den biten.

Angående felmeddelanden från W3, vad är det som är svårtolkat? I exemplet ovan är det ganska uppenbart (ja, det står ju i klartext) att du inte får ha en label på rad x om det inte finns ett <p>, <div> eller annat runt omkring.

Medlem sedan okt. 200932 inlägg
#5

MickeA.com skrev:

I exemplet ovan är det ganska uppenbart (ja, det står ju i klartext) att du inte får ha en label på rad x om det inte finns ett <p>, <div> eller annat runt omkring.

När man lägger fram det så som du skriver så kan jag hålla med om att det står i klartext. :) Tror nog bara att det krävs lite vana från min sida. Har hittills byggt min sida med hjälp av tabeller och har inte lagt ner så våldsamt mycket energi på validering m.m. Nu går jag en kurs i webbutveckling vilket gör att jag sätter ribban högre. Eftersom jag fortfarande är ovan vid det lite kortfattade sätt som felmeddelandena presenteras på W3C så förstår jag dem inte fullt ut. Ska testa dina förslag när jag kommer in från trädgårdsstädningen. Tack än en gång!

/Janne

Medlem sedan okt. 200932 inlägg
#6

MickeA.com skrev:

<p><label for="myField">Fält:</label><br />
<input id="myField" type="text" ... /></p>

Det funkade att göra som du beskrev. Har nu rättat mitt dokument och validerat med "passed" som resultat. Nu återstår dock att få rubrikerna rätt vilket inte är helt lätt det heller mellan en massa div och span :)

Edit: Det var visst inte så svårt nu när jag kommit in i det hela. Det var bara att lägga <h2> direkt efter <div> och </h2> direkt före </div>

Medlem sedan feb. 20034 441 inlägg
#7

Du kan ju posta formuläret här så kan jag ta en titt. Finns ju bra och dåliga sätt till allt :)

Medlem sedan okt. 200932 inlägg
#8

MickeA.com skrev:

Du kan ju posta formuläret här så kan jag ta en titt. Finns ju bra och dåliga sätt till allt :)

Kan jag kanske göra. Nu var det inte i formuläret jag skulle lägga in <h2> om det kanske var det du tänkte på. Formuläret ser i princip ut som det ovan. Rubrik-taggen lades in utanför formuläret i sidhuvudet men eftersom jag inte använt mig av en lista för rubriklänkarna så hade jag en del div- och span-taggar att ta hänsyn till när jag lade in rubrik-taggen.

Medlem sedan feb. 20034 441 inlägg
#9

Du får göra precis hur du vill, men om du vill ha lite tips på bättre kod kan du posta koden här, gör som du vill...

Och glöm inte att "Markera som lösning" på det inlägg som gav dig den hjälp du behövde.

Medlem sedan okt. 200932 inlägg
#10

Ok. Ska försöka fixa det imorgon. Alltid kul med folk som vill hjälpa till. Uppskattas verkligen. Det här med formulär är helt nytt för mig och det formulär jag hittills gjort kommer med största sannolikhet att ändras en del efter hand som jag lär mig mer.

Medlem sedan okt. 200932 inlägg
#11

Här är då koden till mitt formulär i nuvarande version

<form id="form1" method="post" action="http://www.mindomän.se/cgi-bin/FormMail.pl">
  <p><label for="name">Ditt namn:</label><br />
 
  <input name="name" type="text" id="name" size="30" /></p>
  
 
  <p><label for="email">Din epostadress:</label><br />
 
  <input name="email" type="text" id="email" size="30" /></p>
  

  <p><label for="text">Skriv ditt meddelande här:<br />
  </label>
  <textarea name="text" id="text" cols="50" rows="8"></textarea></p>
  
  <p> <label for="send"></label>
  <input type="submit" name="send" id="send" value="Skicka" />
	<label for="reset"></label>
  <input type="reset" name="reset" id="reset" value="Rensa fält" />
  <input name="recipient" type="hidden" id="s_email" value="jan@mindomän.se" />
  <input name="redirect" type="hidden" id="s_retur" value="http://www.mindomän.se/test/message.html" /></p>
</form>

En annan fråga jag har är varför <p> inne i formuläret inte ser ut som <p> gör på sidan i övrigt. Har t.o.m. angivit en särskild deklaration i CSS-filen (form p {font-size:inherit;}). Detta gör att det ser ut som det ska i IE8 och Firefox 3.5 men inte i IE7.

Edit: Vad gäller sista frågan så hade jag visst angivit textstorlek 1.4em i deklarationen för #form1. Efter att jag tagit bort denna deklaration så visas det rätt även i IE7. Däremot begriper jag inte hur det kommer sig att texten blir större än normalt bara för att jag råkar använda font-size på mer än ett ställe. Om alla deklarationer visar samma storlek borde väl inte storleken ändras eller?

267 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)