Строгая проверка XHTML - PullRequest
       10

Строгая проверка XHTML

5 голосов
/ 08 марта 2009

Действительно 2 вопроса. Почему эти биты кода не соответствуют XHTML 1.0 Strict. XHTML 1.0 Strict является требованием проекта.

Строка 2 вызывает проблему

тип документа не допускает элемент «ввод» здесь; отсутствует один из «p», «h1», «h2», «h3», «h4», «h5», «h6», «div», «pre», «address», «fieldset», «ins» , "del" start-tag.

<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="max_file_size" value="1048576" />
<table><tr><td><b>Image location: </b></td><td><input type="file" name="file" size="30"/></td></tr>
<tr><td><b>Caption: </b></td><td><input type="text" name="caption" size="30"/></td></tr>
<tr><td><input name="submit" type="submit" value="Upload" /></td><td>*(png, jpeg, jpg and gif files &lt; 1mb)</td></tr></table>
</form>

А для строки 2 и 3

тип документа не позволяет элементу «вводить» здесь; отсутствует один из «p», «h1», «h2», «h3», «h4», «h5», «h6», «div», «pre», «address», «fieldset», «ins» , "del" start-tag.

<form action="#">
    <input type="text" size="30" name="query"  value="" onkeypress="return disableEnterKey(event)" />
    <input type="button" name="searchButton" value="Search" onclick="loadResults(this.form)" />
</form>

Ответы [ 3 ]

6 голосов
/ 08 марта 2009

Вам необходимо поместить входные данные формы в

или другой блочный тег. элементы - это элементы встроенной формы , а встроенные элементы могут не отображаться в контексте блока. Попробуйте
<fieldset>
   <input ... />
<fieldset>
5 голосов
/ 08 марта 2009

Как говорится в сообщении, элемент input не может быть прямым дочерним элементом формы. Он должен содержаться в одном из «p», «h1», «h2», «h3», «h4», «h5», «h6», «div», «pre», «address», «fieldset» , "ins", "del".

Простейшим решением может быть размещение их внутри элементов "p", "div" или "fieldset".

2 голосов
/ 08 марта 2009

Строгое XHTML требует, чтобы вы не помещали элементы ввода непосредственно в формы - вы можете исправить ошибки, поместив свои данные в любой из элементов уровня блока, предложенных валидатором.

Попробуйте что-то вроде этого:

<form action="#">
    <div>
        <input type="text" size="30" name="query"  value="" onkeypress="return disableEnterKey(event)" />
        <input type="button" name="searchButton" value="Search" onclick="loadResults(this.form)" />
    </div>
</form>
...