HTML Wieso meldet W3C-Validator hier Fehler?

  • Ersteller Ersteller Mr. Snoot
  • Erstellt am Erstellt am
M

Mr. Snoot

Gast
Hio,

kann mir jemand sagen, warum der Validator bei den ganzen inputs meckert?

Dort heißt es überall document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag , obwohl die doch alle in einem div stehen. Und beim form-Tag meldet er end tag for "FORM" which is not finished. Wer ist blind, der Validator oder ich? :D

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title></title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>

  <body onclick="div_close('suggest_top', 'suggest')">
    <div id="page">

      <div id="logo">
        <a href="/"><img src="/bilder/logo.jpg" width="961" height="114" alt="Halbleiter.org"></a>
        <div id="suche_top">
          <form method="post" action="/suche/suche.php" autocomplete="off">
            <input class="suche_top" id="eingabe_top" name="s" type="text"onkeyup="load(this, 'suggest_top', 'eingabe_top', event);">
            <input type="image" class="suche_top_button" src="/bilder/suche.png">
            <input type="hidden" name="exp_capital" value="no" checked>
            <input type="hidden" name="exp_full" value="no" checked>
            <input type="hidden" name="Kapitel" value="on" checked>
            <input type="hidden" name="Lexikon" value="on" checked>
            <input type="hidden" name="pp" value="20">
            <input type="hidden" name="sprache" value="de">
            <br>
          </form>
          <div id="div_suche"><a id="link_suche" href="/suche/">Erweiterte Suche</a></div>
          <div id="suggest_top"></div>
        </div>
      </div>

    </div>
  </body>
</html>
 
Zuletzt bearbeitet:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">

Das liegt an deinem Doctype. HTML 4 strict ist wie der Name schon sagt ziemlich strict. Probiere es mal mit Transitional und ändere dann entsprechend des Doctypes deinen Code ab.

MfG
guru
Ergänzung ()

Da kannst natürlich auch um alle Einträge in deinem Form (input und <br>) auch ein div element drum rum machen.

Siehe
HTML:
<div>
            <input class="suche_top" id="eingabe_top" name="s" type="text"onkeyup="load(this, 'suggest_top', 'eingabe_top', event);">
            <input type="image" class="suche_top_button" src="/bilder/suche.png">
            <input type="hidden" name="exp_capital" value="no" checked>
            <input type="hidden" name="exp_full" value="no" checked>
            <input type="hidden" name="Kapitel" value="on" checked>
            <input type="hidden" name="Lexikon" value="on" checked>
            <input type="hidden" name="pp" value="20">
            <input type="hidden" name="sprache" value="de">
            <br>
</div>

mfg
 
Zuletzt bearbeitet:
This document was successfully checked as HTML 4.01 Strict!
Result: Passed, 1 warning(s)


auf der seite siehst du e was die fehler sind...
Line 15, Column 70: Attribute "AUTOCOMPLETE" is not a valid attribute
autocomplete rausgenommen

Line 16, Column 133: document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag
ihm fehlt ein input. gibst du ihm
<form> braucht noch irgendwas -> <p> und vor dem </form> ein </p>

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title></title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>

  <body onclick="div_close('suggest_top', 'suggest')">
    <div id="page">

      <div id="logo">
        <a href="/"><img src="/bilder/logo.jpg" width="961" height="114" alt="Halbleiter.org"></a>
        <div id="suche_top">
          <form method="post" action="/suche/suche.php">
            <p><input class="suche_top" id="eingabe_top" name="s" type="text"onkeyup="load(this, 'suggest_top', 'eingabe_top', event);">
            <input type="image" class="suche_top_button" src="/bilder/suche.png">
            <input type="hidden" name="exp_capital" value="no" checked>
            <input type="hidden" name="exp_full" value="no" checked>
            <input type="hidden" name="Kapitel" value="on" checked>
            <input type="hidden" name="Lexikon" value="on" checked>
            <input type="hidden" name="pp" value="20">
            <input type="hidden" name="sprache" value="de">
            <br></p>
          </form>
          <div id="div_suche"><a id="link_suche" href="/suche/">Erweiterte Suche</a></div>
          <div id="suggest_top"></div>
        </div>
      </div>

    </div>
  </body>
</html>
 
Achso, die inputs selbst müssen ein eigenes div o.ä. haben!? Ich dachte sie stehen zusammen mit der form in einem div und das genügt.

Na gut, das kann man ja ändern. Das ich's insgesamt nicht valide krieg ist mir klar (wegen dem autocomplete), aber das mit den inputs hat mich eben gewundert.

Merci
 
evtl. solltest du deine tags noch schliessen
PHP:
<br />
<input type="text" name="strText" />
 
Tags werden nicht in HTML 4.01 geschlossen. Wenn man dies tut würde der Validator wieder meckern.

mfg
 
@der_guru: Das stimmt so nicht ganz. Shorttags sind standardkonform, auch in HTML 4.01 Strict.

Der Validator "meckert" nur in Form einer Warnung, dass viele Browser Shorttags in HTML-4.01-Dokumenten nicht korrekt interpretieren und dass man deswegen besser auf sie verzichtet.
 
Zurück
Oben