Почему для выбора тега select требуется хотя бы дочерний тег, чтобы он действовал в формате xhtml 1.0 - PullRequest
1 голос
/ 24 августа 2011

Почему тег select должен иметь хотя бы дочерний тег, чтобы быть действительным xhtml 1.0?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Why select tag need at least one child to be xhtml valid ?</title>
</head>
<body>
Allowed users :<br/>
<select size="5" style="width: 200px">
</select>
<br />
Alls users :<br/>
<select size="5" style="width: 200px">
  <option>root</option>
  <option>John Doe</option>
  <option>Jane Doe</option>
</select>
</body>
</html>

Чтобы быть действительным, мне нужно написать:

<select><option/></select>

Я думаю, что этобесполезно и громоздко добавлять программный тег пустого параметра (особенно в ASP.NET WebForms, я использую элемент управления DropDownList или ListBox с dataBind):

if count == 0 then add <option/>...

В DTD нет объяснения: http://www.w3.org/TR/xhtml1/dtds.html

Знаете ли вы, почему проверка W3C требует этого?

(И как я могу сделать эту страницу действительной, используя элемент управления DropDownList или ListBox в ASP.NET WebForms 4.0?)

Ответы [ 3 ]

1 голос
/ 24 августа 2011

Предполагая, что причина этого в том, что вы добавляете option динамически, я бы посоветовал также добавить и динамически select.

На самом деле, вы можете добавитьnode при загрузке страницы ...

<a name="whatever" id="whatever-id" />

и замените его на select и options при необходимости.

0 голосов
/ 24 августа 2011

Почему?Скорее всего, потому что это стандарт, определенный примерно 10 лет назад.Вам следует подумать о том, чтобы продолжить ...

Пример ниже.


HTML5

Переключите строку типа документа на:

<!DOCTYPE html>

И ваша строка мета-кодировки:

<meta charset="UTF-8" />

Итоговая разметка HTML:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8" />
    <title>Why select tag need at least one child to be xhtml valid ?</title>
</head>
<body>
    Hello World : <select></select>
</body>
</html>

Не стесняйтесь проверять в http://validator.w3.org/#validate_by_input

0 голосов
/ 24 августа 2011

Каково будет семантическое значение выбора без каких-либо опций?Вы могли бы также не иметь выбора ...

...