Eu descobri o que acredito ser um bug no Firefox e estou me perguntando se isso realmente é um bug, bem como alguma solução alternativa para isso.
Se você criar uma página da web básica com a seguinte fonte:
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
</head>
<body>
<div>
<input id="txtTest" type="text" />
<input type="button" onclick="$('#txtTest').attr('disabled','disabled');" value="Set Disabled (jQuery)" />
<input type="button" onclick="document.getElementById('txtTest').disabled = true;" value="Set Disabled (js)" />
<input type="button" onclick="$('#txtTest').removeAttr('disabled');" value="Remove Disabled" />
</div>
</body>
</html>
Se você disable
o fizer textbox
dinamicamente e depois atualizar a página, o textbox
permanecerá desabilitado em vez de voltar ao seu estado original de desabilitado. Eu tentei isso no IE8 e no Chrome e eles se comportam como eu esperava, redefinindo a textbox
parte traseira para não desabilitada quando eu atualizo.
Outra informação interessante é que ainda faz a mesma coisa se a entrada for um em checkbox
vez de a textbox
.
input
elementos quando você simplesmente atualiza?autocomplete="off"
. Esta postagem do blog me parece familiar, então definitivamente já me deparei com isso antes. Você deve escrever uma resposta para sua própria pergunta (ou devo?)Respostas:
Este é um "recurso" do Firefox que lembra os valores de entrada do formulário nas atualizações da página. Para corrigir esse comportamento, basta definir
autocomplete="off"
no formulário que contém as entradas, ou apenas diretamente na entrada.Isso impede que o preenchimento automático funcione e evita que o navegador se lembre do estado dos campos de entrada.
Como alternativa, você pode apenas "atualizar" clicando em CTRL + F5. Isso redefinirá completamente a página atual.
fonte
autocomplete="off"
que não funciona nesse caso.Para lidar com o botão Voltar, faça isso (a partir daqui )
fonte
//enable button here
é redundante aqui; Minha compreensão dos documentos referidos é que simplesmente a presença do ouvinte de eventos impedirá que a página seja armazenada no BFcache.Como mencionado antes, você precisa adicionar
autocomplete="off"
aos seus botões.Aqui está um
sh
+perl
snippet para automatizar isso no caso de<button>
s em seus arquivos / modelos HTML (sob algumas suposições):As premissas são:
As
<button>
tags de abertura começam e terminam na mesma linha. Se este não for o caso (ou seja, eles podem ser divididos em várias linhas), a substituição/g
por/gs
deve ajudar (os
modificador faz.
com que as novas linhas também correspondam)HTML válido (por exemplo, não há caracteres engraçados entre
<
e>
) e nenhum maior que (>
) sem escape dentro da tag de abertura.fonte
Este é realmente um bug aberto no Firefox. Também há uma observação no MDN:
autocomplete
(role para baixo até a segunda caixa amarela):Se você estiver usando o Bootstrap, pode estar interessado no
fonte