quinta-feira, maio 27, 2010

Comportamento do atributo disabled

Hoje estava de volta de um daqueles bugs chatos quando descobri um comportamento interessante (ou não) do atributo disabled. Imaginando que temos o seguinte código de exemplo a caixa de texto vai estar disabled?
<span disabled="disabled">
 <input type="text" />
</span>

Se eu disser que o bug está relacionado com a diferença de browsers, ilumina alguma coisa? Pois é, o problema aqui é que o IE interpreta isto pondo a caixa de texto a disabled, visto que ela está dentro de um span disabled e o Firefox interpreta isto pondo a caixa de texto enabled pois efectivamente ela não está marcada como disabled. Qual o comportamento correcto não sei, mas gostaria que todos os browsers se portassem da mesma maneira.

3 comentários:

Ivo Gomes disse...

Numa tag SPAN não podes usar o atributo "disabled" porque não faz sentido. Esse atributo só é aplicável a campos de formulários. Desta forma não podes esperar que os browsers tenham o mesmo comportamento quando fazes algo que não está definido à partida.

http://www.w3schools.com/tags/tag_span.asp
http://www.w3.org/TR/html401/interact/forms.html#h-17.12.1

Tiago Sousa disse...

Podes ter razão, mas aquele código por acaso até pode ser gerado pelo ASPX, experimenta num ASPX fazer:

<asp:CheckBox Enabled="false" runat="server" />

e vê o resultado do render.

Ivo Gomes disse...

Nao é também o ASPX que coloca o site todo dentro de um form? I rest my case :)