Melhorar a mensagem de erro
A boa notícia é que você pode resolver estes problemas, apenas fornecendo uma mensagem alternativa no atributo de valor do campo oculto, como no exemplo a seguir: Agora, como o formulário for validado, se o usuário não for fornecido, o usuário receberá a nossa mensagem de erro personalizada em vez da mensagem de erro do ColdFusion padrão. Existe um bug no ColdFusion MX onde as mensagens de erro personalizadas para campos obrigatórios do formulário estão sendo ignorados. Este é um problema conhecido com o Macromedia e está programado para ser corrigido em sua próxima ColdFusion MX 2 Updater, que deverá estar disponível para download pelo tempo que este artigo seja publicado. Embora a seqüência fornecida para o atributo de valor só pode ser qualquer texto que você deseja exibir, colocando HTML adicionais dentro da cadeia também é aceitável. Porque é simplesmente passaram para o navegador, você poderia, por exemplo, usar ou tags para acrescentar mais alguma formatação às suas mensagens de erro. Ok, então o valor do atributo permite-lhe melhorar o texto da mensagem de erro, mas que sobre a aparência geral da tela em que é oferecido? Como é que esta mensagem afetam a aparência geral do seu aplicativo colorido, com o seu corpo pastel de fundo azul e as cores do texto adequado, de repente aparecem na tela com o seu texto preto Roman Times sobre um fundo branco? E quanto a barra de navegação do seu site? Se um usuário tiver dúvidas sobre o erro que aparece, como ele pode encontrar a sua página de contato? Os usuários não precisam mesmo ver o rodapé padrão, com um link para o Webmaster. De repente, esta ferramenta nifty automática não parece tão útil como fez no primeiro relance. De fato, muitos desenvolvedores têm simplesmente a abandonou, por isso mesmo. É um problema que pode ser resolvido, no entanto, pelo menos em um grau maior do que deixar a página neste formato blackon planície branca. Você pode controlar todo o layout da página (cor, fonte, e assim por diante), usando tags HTML normais. Você pode até mesmo colocar as barras de ferramentas de navegação e outros recursos para a direita na página. A solução é adicionar ao seu código de validação CFERROR type = "", que permite que você designar um modelo de tratamento de erros de sua própria criação para formatar o aparecimento de apenas estas erros de validação. O último dos três problemas identificados na parte superior quanto ao uso desse servidor automática a validação do lado pode ser o pior de todos, e para muitos, é motivo suficiente para nem sequer recomendam o uso do lado do servidor de validação automática. O problema é que o processo requer que o usuário "use o botão Voltar do seu browser para voltar à página anterior e corrigir os problemas listados." Isso é uma coisa boa para recomendar? Provavelmente não. Em alguns casos, isso faz com que a informação que foi inserida no formulário para ser perdido! Imagine a frustração de um usuário passar um bom bocado de tempo preenchendo um formulário de inscrição que está pedindo vários pedaços de dados. S / ele sustenta, é dito que ele contém um erro (talvez apenas um erro), e o usuário acessa o botão Voltar para encontrar somente que o formulário está desmarcada! E você pode fazer absolutamente nada sobre este problema. É geralmente relacionados com a cache do navegador questões que não são facilmente controladas. Você pode estar pensando que este não é um grande negócio de qualquer maneira, porque não exigida a validação significa que o usuário não digitar nada para o campo exigido no primeiro lugar, mas considero que você pode perguntar para vários campos de dados, das quais apenas uma falha na validação. A questão não é tão grave se o pedido é apenas para o usuário e senha. Mas de uma forma mais complexa, que poderia de fato tornar-se um grande problema. Basta ser sensível a este desafio. Felizmente, existem alternativas na validação do cliente que nós discutiremos mais tarde. Por agora, você tem outros tipos de validações que você pode executar usando este servidor automática a validação do lado. Depois de entender como funciona o processo em geral, você precisa aprender sobre as outras directivas. Além da validação _REQUIRED, vários outros fornecem algumas das validações simples que nós listados anteriormente neste artigo. Tão simples como essas opções podem aparecer, você precisa estar ciente de algumas questões para a maioria deles. Muitas destas questões giram em torno do fato de que, para além de simplesmente validar os dados inseridos, o processo de validação também altera os dados em alguns casos, antes de passar para a folha de ação e de maneiras que podem não ser óbvio nem o esperado, como A lista a seguir descreve: _integer: Se o número digitado pelo usuário contém vírgulas ou sinais de dólar, esses caracteres são removidos para a validação e não são passados para a página de ação. A documentação também diz que arredonda o número digitado se incluir valores decimais, mas na verdade, ele simplesmente trunca-los. _float: Remove vírgulas e cifrões da mesma forma que _integer faz, mas também converte o número (conforme apresentado na página de ação) para que ele tenha seis casas depois da vírgula, preenchidos com zeros. _range: Espera que o intervalo de valores a serem especificados no atributo de valor como min = max xxx = yyy, separados por um espaço. Ele também trata números a mesma não _float (permitindo valores decimais e converter o número para que ele tenha direito de seis casas decimais, assim como a remoção vírgulas e sinais de dólar). _range Também pode especificar apenas um limite. (Mas é preciso colocar um espaço depois do número, como em min = 5. Pode não state = 5 min sem espaço, pelo menos, antes da versão 5, pois isso causaria um erro grave.) Finalmente, porque o intervalo é especificado no atributo de valor, você não pode oferecer uma mensagem personalizada para uma série de validação falhou. _DATE: Aceita uma ampla gama de formatos, tais como a 12/2/01, 12/2/2001 e até 12-2-01, 12 / 2, 2 de dezembro de 2 de dezembro, e assim por diante. Mais importante, ele converte a data entrou para um formato de data ODBC: 12/13/01 torna-se (d '2001-12-13 '). Isso é bom, se você está armazenando o valor em um banco de dados ODBC (porque poupa-lhe a necessidade de converter a data para esse formato), mas se ele é necessário para visualização na página de uma acção (ou armazenada em um banco de dados não-ODBC) , você precisa convertê-lo. Esteja ciente das DateFormat () função, que está disponível para uso para converter a nova versão volta a um formato de data normal. Se o ano for deixado fora de uma data, esta directiva pressupõe o exercício em curso. Se apenas um número único é introduzido, no entanto (talvez na intenção de uma data no mês corrente), ele não funciona em todos. Este número único é rejeitado como uma data inválida. _DATE Não aceita datas europeias (formato dia mês antes), se ela é a única maneira que a data poderia ser válido: 13/12/01, portanto, é aceita e torna-se (d '2013-12-01 '). Mesmo assim, usando a opção _eurodate é preferível usar apenas _DATE se os usuários estão entrando suas datas no formato europeu. Curiosamente, se o valor inserido é ou não uma data válida (13/13/13) ou não uma data de todo (x), a mensagem padrão para ambos é simples: O valor digitado para o campo formfield ( 'value') é não formatado corretamente. Realmente não saber que ele precisa para ser uma data, muito menos um válido. Isto sugere que você realmente deve dar uma mensagem personalizada. _eurodate: Ações todas as facetas da _DATE. A única diferença é que o formato padrão esperado é da ordem europeia do dia, seguido por mês (e, em seguida, opcionalmente, ano). _time: Como não _DATE, esta directiva não só valida o tempo, mas também converte para um formato de hora do ODBC: 1:12 torna-se (t '01: 12:00 '). Tal como acontece com _DATE, essa conversão é muito bem se você está armazenando os dados em um banco de dados ODBC (como se poupa a necessidade de convertê-lo para esse formato), mas se ele é necessário para exibir em uma página de ação (ou é armazenado em um não-ODBC), você precisará convertê-lo de volta usando o TimeFormat disponíveis () function. _time aceita um AM / AM e P / pm / pm para um período de designação. Se a designação for deixado fora, ele assume am. Você também pode digitar apenas uma hora e um designador período, como 10, o que pressupõe a hora (10:00:00). Se apenas um número único é inserido sem um designador período, no entanto, talvez porque o usuário é a intenção de dizer uma hora da manhã, esse valor é rejeitado por uma hora inválida. Estranhamente, se uma data é introduzida, ela aceita, mas converte-lo para o valor (t '00: 00:00 '), meia-noite significado. (Esse resultado pode ser lógico, mas não é provável esperado pela maioria dos desenvolvedores.) Algumas outras questões gerais aplicáveis a uma ou mais destas validações server-side, como a lista a seguir descreve: Como demonstrado nos exemplos anteriormente no artigo, onde fomos validar tanto o nome de usuário e Senha, você pode, naturalmente, validar mais de um campo em um momento em um formulário. Basta adicionar uma tag campo oculto para cada campo que você deseja validar. A mensagem de erro exibida reflete todos os erros de validação que ocorrem. Você também pode especificar mais de uma validação por campo. Para indicar que um campo Idade é simultaneamente necessária e deve ser um número inteiro, por exemplo, basta criar dois escondidos tags campo chamado age_required e age_integer, respectivamente. Adicionando uma regra de validação para um campo não seja um campo requerido. Você precisa adicionar um campo separado _REQUIRED escondida se você quiser garantir a entrada do usuário. Você pode estar preocupado com o efeito sobre o servidor de tempo de processamento do lado se ele é sempre realizar essa validação. Qualquer tempo perdido é insignificante, realmente, em relação ao desempenho mais importantes facetas de drenagem. Você não enfrentam um problema lamentável, porém, que você deve sempre estar conscientes de: páginas de acção CF sempre olhar para uma forma para determinar se ele contém campos terminando com os sufixos. Além disso, em seguida, remove os campos da lista de campos de formulário utilizados na atualização de banco de dados de tags CFINSERT e CFUPDATE. Isso poderia causar um problema se você tem um campo em seu banco de dados como Joined_Date (o que significa a data em que um usuário se juntou a seu serviço) . CF veria qualquer campo do formulário contendo o nome (Joined_Date) como uma validação de um "se" campo. Pior, porque seria então remover esse campo Joined_Date antes do processamento CFINSERT ou CFUPDATE, você pode achar que a coluna não é inserido / atualizado. Novamente, apenas estar consciente do problema. É muitas vezes uma fonte de muito difíceis de resolver bugs. Então esse é um rápido resumo do servidor automática a validação do lado. É um recurso que tem seus prós e contras. Mas uma preocupação primordial deve ser que, por causa do servidor validação lateral força o usuário a cópia de segurança para corrigir eventuais erros, ele realmente não deve ser usado se o formulário pede ao usuário para mais de campos de entrada de um casal. (E você verá mais tarde que a mão-codificado serverside validação é utilizado para outros fins totalmente.) Em vez disso, se você precisa validar vários campos do formulário, você pode fornecer ao usuário uma experiência muito melhor, usando a validação do cliente, e os recursos automáticos em CF fazer isto muito fácil de fazer, mesmo se você não sabe o JavaScript. um artigo submetido por Jill Babcoff Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo intitulado "Melhorar a mensagem de erro" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 443 users browsing the articles directory |
|
|