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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top