Qual é a melhor maneira de repovoar um formulário e apresentar erros sem-script?

StackOverflow https://stackoverflow.com/questions/1003132

  •  05-07-2019
  •  | 
  •  

Pergunta

Estou construindo uma aplicação que usa AJAX chamadas para validações de formulário e alguns outros, problema é que eu não gosto quando esses erros de validação aparece em uma nova página sem css em tudo e formar fica completamente redefinida sem os javascripts.

Eu estou falando sobre uma dúzia de formas assim, ele vai ser bastante irritante para o usuário que passar por formas mais e outra vez.

Eu li algumas respostas sobre este tema, mas há uma maneira específica, a melhor prática para uma situação como esta (mais ao longo das linhas de validação de formulário)?

Desculpas se há uma resposta já.

Editar:

Todas as validações são feitas no lado do servidor, atualmente os erros estão sendo exibidos com a ajuda de ajax. O que eu gostaria é um método conveniente para repovoar o formulário e apresentar erros sem javascript se ocorrer um erro durante o processamento do formulário.

Foi útil?

Solução

Eu não tenho certeza se você está implicando por sua pergunta que você não validam no servidor - isso seria considerado uma enorme falha de segurança como, obviamente formas poderia ser contornado por simplesmente desabilitar o Javascript. Você tem que validar no servidor de cada vez, enquanto a validação do lado do cliente é simplesmente bom para fazer.

Além disso, o "problema" de ter as formas redefinir-se quando a página é recarregada torna-se discutível quando você usa um quadro decente - Em Python, Django auto-preenche formulários no caso de erros. Em PHP, CakePHP e CodeIgniter fazer tão bem, e tenho certeza que a maioria dos bons enquadramentos fazer isso, à medida que cai sob a categoria de "Tarefas comuns" que os quadros são supostamente para longe abstrato.

Sempre que eu não estou usando um quadro, eu escrevo a minha própria pequena classe de formulário que preenche a necessidade.

Editar :

Eu não estou ciente de qualquer coisa que você poderia plug-in para o que você tem que ser capaz de repovoar o formulário. Sua melhor aposta é escrever sua própria classe pouco para ele, que não mais deve demorar mais de 1 hora.

Outras dicas

O que eu faço normalmente é armazenar todas as cadeias do erro em uma matriz em uma variável de sessão (eu uso PHP). Se há um erro no lado do servidor, redirecionar a volta do usuário para a página de formulário, verifique a sessão var, e exibir os erros conforme o caso. Certifique-se de retirar a sessão var para liberar memória depois de exibi-lo. O mesmo vale para repovoar a forma - valores em uma var sessão.

validação de formulário deve ser escrito no primeiro servidor, no cliente mais tarde. Você deve ser validar no servidor em qualquer caso. Não confie em Ajax por algo tão simples e tão crucial para o funcionamento do seu site como validação de formulário. Usando scripts discreto, pode impedir que o formulário padrão apresentação e, em seguida, processar o formulário usando Ajax. Caso contrário, deixe a submeter-se a passar e responder com uma página de validação gerado pelo servidor.

Executar suas validações no lado do servidor e repovoar as formas.

Validação via AJAX é agradável , mas não pode ser imposta. Assim, é mais eficaz para fazer as validações ser realizada ou não o AJAX acontece. Gostaria de sugerir uma segunda rota que pode lidar com as validações e passar para trás uma série de erros em JSON para aqueles que têm javascript. Mas para aqueles sem javascript, a única maneira suas validações vai funcionar é através do lado do servidor.

Você não realmente ter uma escolha neste, infelizmente. Qualquer programador decente ou hacker com firebug pode editar o seu javascript, retire os ganchos, e dar a volta tudo o que você está tentando fazer do seu lado:. Ser paranóico e impor a validação no lado do servidor

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