12th nov 2009
O POG nosso de cada dia #17
Mais um POG que só o IE 6 nos faz conceber…
O problema
Comecei a usar a jQuery UI em uma implementação, mais precisamente para ter elementos (divs) de três colunas podendo ser rearranjados (dentro das colunas e entre elas) por drag’n drop. Tudo indo bem, suave, com o Sortable da UI. Nenhum bug, impressionante. Mas aí, o cliente reporta um erro: dentro de uma div, tem uns campos input checkbox que perdem a seleção quando a div é arrastada.
Na hora, já quase comecei a chorar, pois me parecia ser um daqueles bugs sem sentido solução, do IE.
O POG
Nada que o Google não resolva… uma pequena busca, e me deparo com esses posts:
- http://webbugtrack.blogspot.com/2007/11/bug-299-setattribute-checked-does-not.html
- http://groups.google.com/group/jquery-ui/browse_thread/thread/918fc66cf264d3da/ac1bc0633ed97900?show_docid=ac1bc0633ed97900&pli=1
O que eles falam? Que você só precisa colocar um atributo mágico chamado defaultChecked com valor defaultChecked nos inputs para ele não perder a seleção. Segue exemplo abaixo:
$(“input”).attr({checked: “checked”, defaultChecked:”defaultChecked”});
Em mais de 5 anos trabalhando – muito – com web, nunca tinha visto esse atributo, nem precisado usar. O porque setar ele? Nem fui atrás de saber, mas certamente não faz sentido! Muito bom, IE6, contribuindo para os blogs que falam sobre gambiarras!

Como assim nunca ouviu falar? O bom e velho defaultChecked… NOT!
IE, criando “regras”.
[...] This post was mentioned on Twitter by Chris Benseler, Chris Benseler. Chris Benseler said: POG nosso de cada dia #17 http://bit.ly/47tbuM valeu, IE6, mais um pra lista! [...]
Até aonde eu sei, o defaultSelected eo defaultChecked são atributos que são definidos pela W3C e estão presentes em todos os navegadores, porém, nas versões mais antigas do IE ele apresenta alguns bugs com seu funcionamento.
Igor, fui até dar uma olhada, e vi isso aqui:
- na especificação do html 4.01 não existe: http://www.w3.org/TR/html401/interact/forms.html#h-17.4
- no MSDN (http://msdn.microsoft.com/en-us/library/ms533715%28VS.85%29.aspx) falam que existe na especificação DOM HTML (http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html) existe.
Ou seja, é uma daquelas coisas confusas… hehe
Abs!