Pergunta

Todas as ideias por que isso não irá validar aqui:

http://validator.w3.org/#validate_by_input

Parece que as marcas de entrada forma estão errados mas a leitura através do XHTML especificação que deve validar bem. Alguma idéia?

<!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>
  <title>Test</title>
 </head>

 <body>
    <div class="Header">
        <table class="HeaderTable">
            <tr>
                <td>
                    <div class="Heading">Test <span class="Standard">Test</span>
                    </div>
                </td>
                <td>
                    <div class="Controls">
                        <form id="ControlForm" method="get" action="Edit.php">
                            <input type="submit" name="action" id="Edit" value="Edit" />
                            <input type="submit" name="action" id="New" value="New" />
                        </form>
                    </div>
                </td>
            </tr>
        </table>
    </div>
 </body>
</html>
Foi útil?

Solução

Você precisa mover

<div class="Controls">

para que ele de dentro

tag


Isso valida muito bem

<!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>
    <title>Test</title>
</head>

<body>
    <div class="Header">
        <table class="HeaderTable">
        <tr>
            <td>
                <div class="Heading">Test <span class="Standard">Test</span></div>
            </td>
            <td>
                <form id="ControlForm" method="get" action="Edit.php">
                    <div class="Controls">
                        <input type="submit" name="action" id="Edit" value="Edit" />
                        <input type="submit" name="action" id="New" value="New" />
                    </div>
                </form>
            </td>
        </tr>
        </table>
    </div>
</body>
</html>

Outras dicas

Tente colocar um tag fieldset em torno das entradas. Acho que a idéia de formas em XHTML é que eles não podem ter descendentes diretos que não estão div, fieldset, etc.

Como alguém colocá-lo:

[quote] O validador está dizendo que o seu elemento de entrada oculto não pode seguir imediatamente a tag forma - ele precisa ter um elemento de recipiente de algum tipo. [/ Quote]

( Fonte )

Eu acho que um fieldset poderia ajudar; Consulte O XHTML DTD :

<!ELEMENT form %form.content;>

<!ENTITY % form.content "(%block; | %misc;)*">

<!ENTITY % misc "noscript | %misc.inline;">
<!ENTITY % misc.inline "ins | del | script">

<!ENTITY % block "p | %heading; | div | %lists; | %blocktext; | fieldset | table">

<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
<!ENTITY % lists "ul | ol | dl">
<!ENTITY % blocktext "pre | hr | blockquote | address">

Sem entrada para você: (

Eu tive o mesmo problema e ele me levou algum tempo para descobrir. É este uma mudança recente com o validador do W3C? é só eu tenho certeza que algumas das minhas páginas com formulários validados no passado, mas agora todos eles parecem Através-se erros para o mesmo problema.

Eu costumava sempre fazer algo como:

<div>
<form>
    <label></label>
    <input />
    <label></label>
    <input />
    <label></label>
    <input />
</form>

e obter erros de validação, então agora eu só adicionar fieldset ou div em torno de todos os rótulos e insumos para obtê-lo para validar, como este:

<div>
<form>
    <fieldset>or<div>
        <label></label>
        <input />
        <label></label>
        <input />
        <label></label>
        <input />
    </fieldset>or</div>
</form>

parece funcionar, mas eu tenho certeza que eu não tenho que fazer isso no passado ... hmmm?

<!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>
  <title>Test</title>
 </head>

 <body>
    <div class="Header">
        <table class="HeaderTable">
                <tr>
                        <td>
                                <div class="Heading">Test <span class="Standard">Test</span>
                                </div>
                        </td>
                        <td>

                            <form id="ControlForm" method="get" action="Edit.php">
                                <div class="Controls">
                                                <input type="submit" name="action" id="Edit" value="Edit" />
                                                <input type="submit" name="action" id="New" value="New" />
                                </div>
                            </form>

                        </td>
                </tr>
        </table>
    </div>
 </body>
</html>

Coloque o seu div dentro de sua forma.

Seus elementos de entrada deve estar dentro de um fieldset. Isso valida e tem a vantagem de tornar o documento mais acessível aos agentes não-visuais.

Como um aparte, sua marcação está sofrendo de divitis um pouco. Você poderia colocar aulas sobre as células da tabela diretamente em vez de elementos div nidificação dentro deles (eu não vou comentar sobre o uso de tabelas para layout). Além disso, você poderia estilo o elemento de formulário diretamente em vez de nidificação-lo dentro de uma div.

De qualquer forma, aqui está o seu exemplo, com um conjunto de campos adicionados por isso valida:

<!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>
    <title>Test</title>
  </head>
  <body>
    <div class="Header">
      <table class="HeaderTable">
        <tr>
          <td>
            <div class="Heading">Test <span class="Standard">Test</span></div>
          </td>
          <td>
            <div class="Controls">
              <form id="ControlForm" method="get" action="Edit.php">
                <fieldset>
                  <input type="submit" name="action" id="Edit" value="Edit" />
                  <input type="submit" name="action" id="New" value="New" />
                </fieldset>
              </form>
            </div>
          </td>
        </tr>
      </table>
    </div>
  </body>
</html>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top