Améliorer le message d'erreur
Les bonnes nouvelles sont que vous pouvez résoudre ces deux problèmes, simplement en fournissant un message d'alternative dans l'attribut value du champ caché, comme dans l'exemple suivant: Or, comme le formulaire est validé, si le nom d'utilisateur n'est pas fourni, l'utilisateur recevra notre message d'erreur personnalisé à la place de ColdFusion message d'erreur par défaut. Il ya un bogue dans ColdFusion MX où les messages d'erreur personnalisés pour les champs de formulaire requis sont ignorés. Il s'agit d'un problème connu avec Macromedia et est prévu pour être fixé dans leur prochaine mise à jour ColdFusion MX 2, qui devrait être disponible pour téléchargement par le moment où cet article est publié. Bien que la chaîne fournie pour l'attribut value peut être juste un texte qui vous souhaitez afficher, mettant HTML supplémentaire dans la chaîne est également acceptable. Parce que c'est tout simplement passé par le navigateur, vous pourriez, par exemple, d'utiliser ou d'ajouter des tags un peu plus en forme à votre message d'erreur. Ok, donc l'attribut de valeur vous permet d'améliorer le libellé du message d'erreur, mais qu'en est-il l'apparence générale de l'écran dans lequel il est offert? Comment ce message d'incidence sur l'apparence générale de votre application coloré, avec ses pastels background-corps bleu et les couleurs de texte approprié, pour apparaître soudainement à l'écran avec son texte en Times Roman noir sur fond blanc? Et que dire de la barre d'outils de navigation de votre site? Si un utilisateur a des questions sur l'erreur qui s'affiche, comment peut-il trouver votre page Contactez-nous? Les utilisateurs ne voient même pas votre pied de page standard avec un lien vers le Webmaster. Soudain, cet outil automatique nifty ne semble pas aussi utile qu'elle n'a à première vue. En effet, de nombreux développeurs ont tout simplement abandonné pour cette raison. C'est un problème qui peut être résolu, cependant, au moins à un degré plus que de laisser la page dans cette blackon plain-format blanc. Vous pouvez contrôler l'aménagement complet de la page (couleur, police, etc) en utilisant des balises HTML normales. Vous pouvez même placer vos barres d'outils de navigation et autres fonctions à droite sur la page. La solution consiste à ajouter à votre code CFERROR type = "validation", qui vous permet de désigner un modèle de gestion des erreurs de votre propre création pour mettre en forme l'apparence d'un peu de ces erreurs de validation. Le dernier des trois problèmes identifiés dans la partie ci-dessus concernant l'utilisation de ce serveur automatique de validation côté mai être le pire de tous, et pour beaucoup, c'est une raison suffisante pour ne recommandent même l'utilisation de server-side validation automatique. Le problème est que le processus exige que l'utilisateur «d'utiliser le bouton retour de votre navigateur Web pour revenir à la page précédente et corriger les problèmes énumérés." Est-ce une bonne chose à me recommander? Probablement pas. Dans certains cas, les causes faisant ainsi l'information qui a été inscrit sur la formule à perdre! Imaginez la frustration d'un utilisateur de passer un bon bout de temps à remplir un formulaire d'inscription qui est demandé pour plusieurs morceaux de données. Il / elle fait valoir, on dit qu'il contient une erreur (peut-être juste une erreur), et l'utilisateur clique sur le bouton Retour pour constater que la forme est effacée! Et vous pouvez faire absolument rien sur ce problème. Il est généralement lié au navigateur de mise en cache des questions qui ne sont pas faciles à contrôler. Vous mai-être penser que ce n'est pas si grand une affaire quand même, car à défaut de la validation des moyens requis que l'utilisateur n'a pas indiquer la matière souhaitée pour la première place, mais considérez que vous mai se demander pour plusieurs champs de données, dont un seul ne parvient pas la validation. La question n'est pas si grave si l'invite est juste pour nom d'utilisateur et mot de passe. Mais dans une forme plus complexe, il pourrait en effet devenir un problème majeur. Juste être sensibles à ce défi. Heureusement, des alternatives existent dans la validation côté client que nous verrons plus tard. Pour l'instant, vous n'avez d'autres types de validations que vous pouvez effectuer à l'aide de ce serveur de validation automatique de côté. Une fois que vous comprendre comment le processus fonctionne en général, vous avez besoin de se renseigner sur les autres directives. Outre la validation _REQUIRED, plusieurs autres de fournir certains des simples validations que nous avons listées plus haut dans cet article. Aussi simple que ces options mai apparaissent, vous devez être conscient de certains problèmes pour la plupart d'entre eux. Beaucoup de ces questions tournent autour du fait que, en plus de valider simplement les données saisies, le processus de validation modifie également les données dans certains cas, avant qu'il ne passe à la page d'action et de façon à mai ne pas être évidente ni prévu car La liste suivante décrit: _integer: Si le nombre entré par l'utilisateur contient des virgules ou des signes de dollar, ces caractères sont supprimés pour la validation et ne sont pas transmis à la page d'action. La documentation dit aussi qu'il arrondit le nombre entrée si elle comprend les valeurs décimales, mais en fait, il tronque tout simplement. _float: Supprime les virgules et les signes de dollars de la même manière que _integer fait, mais convertit également le numéro (tel que présenté sur la page d'action) de sorte qu'il dispose de six places après la virgule, complété par des zéros. _range: Attend de la plage des valeurs à être précisée dans l'attribut valeur min = max = xxx yyy, séparés par un espace. Il traite également des numéros de la même chose que ne _float (permettant la conversion de valeurs décimales et le nombre de sorte qu'il a droit à six places décimales, ainsi que la suppression des virgules et des signes de dollar). _range Pouvez également spécifier une seule frontière. (Mais il faut placer un espace après le nombre, comme en min = 5. On ne peut pas état = 5 min sans espace, au moins avant la version 5, car cela entraînerait un bug grave.) Enfin, parce que le plage est spécifiée dans l'attribut value, vous ne pouvez pas offrir un message personnalisé pour un éventail de validation a échoué. _date: Accepte une large gamme de formats, tels que 12/2/01, 12/2/2001, et même 12-2-01, 12 / 2, Décembre 2, Dec 2, et ainsi de suite. Plus important encore, il convertit la date inscrite à un format de date ODBC: 12/13/01 devient (d '2001-12-13 '). C'est parfait si vous stockez la valeur dans une base de données ODBC (car elle vous évite le besoin de convertir une date à ce format), mais si on en a besoin pour l'affichage sur une page d'action (ou stockées dans un non-base de données ODBC) , vous devez le convertir. Soyez conscient de la DateFormat () fonction, qui est disponible pour les utiliser pour convertir la nouvelle version de revenir à un format de date régulière. Si l'année est laissé une date, cette directive prend l'année en cours. Si seulement un seul numéro est inscrit, en revanche (peut-être dans l'intention d'une date dans le mois courant), il ne fonctionne pas du tout. Ce numéro unique est rejetée comme une date non valide. _date Ne accepte européenne formater des dates (jour avant le mois), si c'est la seule façon que la date pourrait être valable: 13/12/01, par conséquent, est acceptée et devient (d '2013-12-01 '). Même si, en utilisant l'option _eurodate est préférable d'utiliser simplement _date si vos utilisateurs entrent leurs dates dans le format européen. Curieusement, si la valeur saisie est soit pas une date valide (13/13/13) ou non d'un jour à tout (x), le message par défaut pour les deux est simple: la valeur entrée pour le domaine formfield ( 'value') est pas correctement formaté. Ne véhiculent pas vraiment que ce doit être une date, et encore moins valable. Cela donne à penser que vous devriez vraiment apporter un message personnalisé. _eurodate: Actions toutes les facettes de _date. La seule différence est que le format par défaut attendu est de l'ordre européen du jour, suivi par mois (et puis, éventuellement, année). _time: En tant que ne _date, cette directive non seulement valider les temps, mais convertit également à un format d'heure ODBC: 1:12 devient (t '01: 12:00 '). Comme avec _date, cette conversion est très bien si vous stockez les données dans une base de données ODBC (car vous économiserez sur la nécessité de le convertir à ce format), mais si on en a besoin pour l'affichage sur une page d'action (ou est stocké dans un non-ODBC de base de données), vous avez besoin de le reconvertir en utilisant le TimeFormat disponible () la fonction. _time accepte un / am / h et p / pm / h pour une période de désignation. Si la désignation est laissée, elle assume le suis. Vous pouvez également entrer seulement une heure et un désignateur période, tels que 10h, ce qui suppose que l'heure (10:00:00). Si seulement un numéro unique est entré sans un désignateur période, cependant, peut-être parce que l'utilisateur a l'intention d'entendre un temps le matin, cette valeur est rejeté comme une heure non valide. Curieusement, si une date est entré, il l'accepte, mais coverts à la valeur (t '00: 00:00 '), minuit sens. (Un tel résultat mai être logique, mais n'est pas susceptible attendu par la plupart des développeurs.) Quelques autres questions d'ordre général s'appliquent à un ou plusieurs de ces validations côté serveur, comme la liste qui suit décrit: Comme l'a montré dans les exemples précédemment dans l'article, où nous avons été à la fois de valider les champs username et mot de passe, vous pouvez, bien sûr, de valider plus d'un champ à la fois dans un formulaire. Vous devez simplement ajouter un tag caché champ pour chaque champ que vous voulez valider. Le message d'erreur affiché tient compte de toutes les erreurs de validation qui se produisent. Vous pouvez également spécifier plus d'une validation par champ. Pour indiquer qu'un champ Âge est à la fois nécessaire et doit être un entier, par exemple, vous créez simplement deux cachés-tags champ nommé age_required et age_integer, respectivement. Ajout d'une règle de validation pour un champ ne fait pas un champ obligatoire. Vous avez besoin d'ajouter un champ distinct _REQUIRED cachée si vous voulez vous assurer d'entrée utilisateur. Vous mai être inquiets quant à l'effet sur le serveur de temps de traitement de côté si c'est toujours effectuer cette validation. Toute perte de temps est négligeable, vraiment, par rapport aux performances plus importantes facettes de drainage. Vous ne font face à une issue malheureuse, cependant, qu'il faut toujours rester conscient de: pages d'action FC regardez toujours une forme à déterminer si elle contient des champs se terminant par les suffixes. En outre, il leur enlève les domaines de la liste des champs de formulaire utilisé dans les balises de base de données mise à jour CFINSERT et cfupdate. Cela pourrait causer un problème si vous avez un tel champ dans votre base de données comme Joined_Date (ce qui signifie la date à laquelle un utilisateur joint votre service) . FC verrait aucun champ de formulaire contenant que (nom Joined_Date) comme une validation d'un «jointe» sur le terrain. Pire encore, car il serait alors supprimer ce domaine Joined_Date avant la transformation ou CFINSERT cfupdate, vous trouverez mai que la colonne ne sont jamais insérées ou mises à jour. Encore une fois, simplement être conscients de la question. Il est souvent une source de très difficiles à résoudre les bugs. Voilà un rapide aperçu du serveur de validation automatique de côté. C'est une fonctionnalité qui a ses avantages et les inconvénients. Mais le souci premier doit être que, parce que la validation côté serveur oblige l'utilisateur à la sauvegarde de corriger toute erreur, il ne devrait vraiment pas être utilisée si le formulaire de demande à l'utilisateur pour plus d'un couple de champs de saisie. (Et vous voir plus loin que la main-codés de validation côté serveur est utilisé à d'autres fins tout à fait.) Au lieu de cela, si vous avez besoin de valider plusieurs champs de formulaire, vous pouvez fournir une expérience beaucoup plus agréable d'utilisateur en utilisant la validation côté client, et les fonctionnalités automatiques FC font cela très facile à faire, même si vous ne connaissez pas le JavaScript. un article présenté par Jill Babcoff Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite. Important: Cet article «Améliorer le message d'erreur" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.
|
|||||
| Online: 264 users browsing the articles directory |
|
|