dados modificando formulário Safari e Chrome no botão voltar
-
13-09-2019 - |
Pergunta
I recebendo este problema estranho no Safari e Chrome (funciona no Firefox e IE).
- I começar com esta lista caixa que tem o primeiro item 'A' marcada, e no item 'B' e 'C' desmarcada
- Em seguida, navegar para outra página que ordena os itens que aparecem na lista de caixa de seleção
- I alterar a ordem dos itens na lista por isso agora vai 'B', 'A', 'C'
- I pressionar o botão voltar
- A página é re-buscada a partir do servidor (eu cache desativada), eu verifico a resposta enviada a partir do servidor, e o item 'A' ainda é verificada e não o primeiro item na lista.
- !!! Comportamento estranho !!! A página foi carregada no navegador com a nova ordem 'B', 'A', 'C', mas 'A' não está marcada, em vez do primeiro item 'B' está marcada.
De alguma forma, parece que a posição do item de verificação foi restaurada, premindo o botão de volta, e os dados do formulário foi descartado que foi enviada a partir do servidor.
Quando eu atualizar a página da ordem é 'B', 'A', 'C' e no item 'A' agora é verificado, e tudo parece ok.
Em ambas as ocasiões a página tem IsPostBack conjunto para false.
Este é um bug no kit web?
Tentei, limpar o cache, entrar em modo de navegação privada, limpar o histórico. Ainda mesmo comportamento.
Solução
Eu encontrei o mesmo problema com o Chrome. Em mais testes, descobri isso só acontece se o site utiliza sessões. Sempre que você pressionar o botão voltar, ele remove todos os dados POST em vez de reenviar-lo.
Eu criei uma página para testá-lo: http://www.duanehutchins.com/formtest.php Se você digitar algumas informações e postá-lo algumas vezes, ele funciona. Pressione para trás e recarga; nenhum dado for anunciado.
Se eu desativar a sessão, ele funciona bem. I reportou o bug no Chrome. Vamos ver se alguém ajuda.
Outras dicas
Nós tivemos um problema semelhante com dados de formulário a ser "restaurado" por Webkit, embora o estado da página mudou nesse meio tempo.
Safari e Chrome botão voltar muda escondida e enviar valores em formulários deu uma boa dica que funcionou para nós. Ao adicionar autocomplete="off"
a todas as formas na página poderíamos resolver isso.
Veja este exemplo:
Isso está acontecendo para mim também. Esta parece ser uma falha bastante fundamental como o caso de uso é tão simples, e mais comum provável. Eu já executar para esse problema em dois lugares em diferentes projetos. Se a desativação da sessão realmente evita este problema, que não é uma real correção, como a maioria dos clientes não vai mesmo saber sobre esta opção, ou cuidado.