Condicionalmente ignorar campos do formulário de submissão, Reduzir URL desordem
-
12-09-2020 - |
Pergunta
Tenho vários campos de formulário ocultos que armazenam valores sobre o modo de exibição atual (e.g.se determinados, normalmente ocultos div são visíveis, etc.) para restaurar o layout quando o formulário envia de volta.
O problema é que eu estou sempre submetendo todos estes campos ocultos, mesmo se eles estão no padrão, gerando muita desnecessários URL desordem no processo (por exemplo, http://www.example.com/view?ab=&ac=&ad= e assim por diante).
Eu prefiro enviar apenas os campos que são, na verdade, influenciando o modo de exibição (ou seja, não tem um valor padrão especificado) para que a URL desordem é, no mínimo.
Eu tentei manualmente eliminar/inserir entrada, mas seu pesadelo.Não há melhor maneira de fazer isso?
Solução
Tente desativá-los "Controles que são desativados não podem ser bem sucedidos."- http://www.w3.org/TR / HTML401 / Interact / Forms.html # H-17.13.2
Outras dicas
Usando jQuery, você pode apenas remove()
os elementos de formulário antes de transmitir.Outra maneira que eu poderia pensar é para remover o name attribute
.
$('form').bind('submit', function(){
$(this).children('input').each(function(){
if(this.value === this.defaultValue)
$(this).remove();
});
});
A menos que você tenha um motivo para manter essas opções no URL, por que não armazenar esses valores em um cookie?Na verdade, isso geralmente é feito em muitos sites.Se você quiser ser mais cuidadoso, as opções de exibição podem ser armazenadas em um banco de dados para cada usuário, mas essa é a sua escolha.