Formulários HTML: Problemas com campos desabilitados?
Que desenvolvedor web nunca teve problemas com os campos desabilitados não irem no request?!? Pois é. Tivemos muito aqui! Foi aí que tive a idéia deste maravilhoso JavaScript que resolve o problema.
Explicando o abacaxi...
Você, desenvolvedor web, já teve problemas ao submeter um formulário e.... cadê o valor do meu campo??? Ele estava desabilitado... será que é isto? Sim! Os campos desabilitados NÃO vão no request ao submeter um formulário. Que inferno! Espero que o HTML 2.0 resolva isso.
Mas... Enquanto esperamos, aqui esta a solução!!!
o pequeno JavaScript a seguir é, na minha modesta opinião, maravilhoso.
O que ele faz?
Temos duas funções JS (uma seria "public" e outra "private"), o que o desenvolvedor precisa fazer é chamar a primeira delas "procuraDesabilitados()" passando o formulário como parâmetro. Pronto!
Por baixo dos panos o que é feito? A rotina chamada vai (recursivamente) procurando todos os campos dentro do formulário e para cada campo encontrado ela faz o seguinte:
1. Verifica se o campo esta desabilitado. se não tiver pula.
2. Altera o nome do campo, colocando "Auxiliar" no final, para não valer mais.
3. Cria dinamicamente um novo campo escondido (hidden) com o mesmo nome e valor do campo anterior (renomeado para Auxiliar).
4. Pronto!
Agora temos um campo escondido, com o nome do campo original, que vai enviar corretamente os dados no request, e como o campo desabilitado não envia valor, deve-se ignorar tudo que vier pelos campos "Auxiliar".
Siga para a próxima página que teremos o código JavaScript.
Na terceira página teremos um pequeno teste PHP de exemplo.
Dúvidas, sugestões, críticas... Estamos aí!
Testado no super Firefox e até no lixo do IbugsE.
Mas... Enquanto esperamos, aqui esta a solução!!!
o pequeno JavaScript a seguir é, na minha modesta opinião, maravilhoso.
O que ele faz?
Temos duas funções JS (uma seria "public" e outra "private"), o que o desenvolvedor precisa fazer é chamar a primeira delas "procuraDesabilitados()" passando o formulário como parâmetro. Pronto!
Por baixo dos panos o que é feito? A rotina chamada vai (recursivamente) procurando todos os campos dentro do formulário e para cada campo encontrado ela faz o seguinte:
1. Verifica se o campo esta desabilitado. se não tiver pula.
2. Altera o nome do campo, colocando "Auxiliar" no final, para não valer mais.
3. Cria dinamicamente um novo campo escondido (hidden) com o mesmo nome e valor do campo anterior (renomeado para Auxiliar).
4. Pronto!
Agora temos um campo escondido, com o nome do campo original, que vai enviar corretamente os dados no request, e como o campo desabilitado não envia valor, deve-se ignorar tudo que vier pelos campos "Auxiliar".
Siga para a próxima página que teremos o código JavaScript.
Na terceira página teremos um pequeno teste PHP de exemplo.
Dúvidas, sugestões, críticas... Estamos aí!
Testado no super Firefox e até no lixo do IbugsE.