Remover o botão X de campo claro do IE10 em certas inputs?

É um recurso útil, com certeza, mas existe alguma maneira de desativá-lo? Por exemplo, se o formulário for um único campo de texto e já tiver um botão “limpar” ao lado, é supérfluo também ter o X. Nessa situação, seria melhor removê-lo.

Pode ser feito e, em caso afirmativo, como?

Estilize o pseudoelemento ::-ms-clear para a checkbox:

 .someinput::-ms-clear { display: none; } 

Eu achei que é melhor definir a width e a height para 0px . Caso contrário, o IE10 ignora o preenchimento definido no campo – padding-rightpadding-right – que se destinava a impedir que o texto fosse typescript sobre o ícone ‘X’ que eu sobreponha no campo de input. Eu estou supondo que o IE10 está aplicando internamente o padding-right da input para o pseudo-elemento ::--ms-clear , e esconder o pseudo-elemento não restaura o valor padding-right para a input .

Isso funcionou melhor para mim:

 .someinput::-ms-clear { width : 0; height: 0; } 

Eu aplicaria essa regra a todos os campos de input do texto tipo, por isso não precisa ser duplicado mais tarde:

 input[type=text]::-ms-clear { display: none; } 

Pode-se até ficar menos específico usando apenas:

 ::-ms-clear { display: none; } 

Eu usei o último mesmo antes de adicionar essa resposta, mas achei que a maioria das pessoas preferiria ser mais específica do que isso. Ambas as soluções funcionam bem.

Você deve estilizar para ::-ms-clear ( http://msdn.microsoft.com/pt-br/library/windows/apps/hh465740.aspx ):

 ::-ms-clear { display: none; } 

E você também estiliza para ::-ms-reveal pseudo-element para o campo password:

 ::-ms-reveal { display: none; } 

Acho que vale a pena notar que todas as soluções baseadas em estilo e CSS não funcionam quando uma página está sendo executada no modo de compatibilidade. O renderizador de modo de compatibilidade ignora o elemento :: – ms-clear, mesmo que o navegador mostre o x.

Se sua página precisa ser executada no modo de compatibilidade, você pode ficar preso com a exibição do X.

No meu caso, estou trabalhando com alguns controles de dados de terceiros, e nossa solução foi manipular o evento “onchange” e limpar o armazenamento de apoio se o campo for limpo com o botão x.