Verbesserung der Fehlermeldung
Die gute Nachricht ist, dass man diese Probleme lösen kann, einfach durch Bereitstellung einer alternativen Nachricht in das value-Attribut des versteckten Feldes, wie in dem folgenden Beispiel: Nun, wie die Form ist validiert, wenn der Benutzername ist nicht gegeben, wird der Benutzer unserer benutzerdefinierten Fehlermeldung anstelle von ColdFusion die Standard-Fehlermeldung. Es ist ein Fehler in ColdFusion MX, wenn die benutzerdefinierte Fehlermeldungen für erforderlich Formularfelder werden ignoriert. Dies ist ein bekanntes Problem mit Macromedia und soll in den kommenden ColdFusion MX Updater 2, die zur Verfügung stehen zum Download zur Zeit dieser Artikel veröffentlicht festzusetzen. Obwohl die Zeichenfolge bereitgestellt für den Wert Attribut kann nur sein, dass Sie jede Formel angezeigt werden sollen, setzen zusätzliche HTML innerhalb des Strings ist ebenfalls akzeptabel. Denn es ist einfach an den Browser übergeben, können Sie zum Beispiel, die Verwendung oder Stichworte, um einige weitere Formatierungen auf Ihre Fehlermeldungen. Okay, also das value-Attribut können Sie den Wortlaut der Fehlermeldung zu verbessern, aber was ist das allgemeine Erscheinungsbild des Bildschirms, in dem es angeboten? Wie funktioniert dieser Nachricht Auswirkungen auf die allgemeine Erscheinungsbild Ihres bunten Anwendung, mit der Pastell-blauen Körper Hintergrund und passenden Text Farben, erscheinen plötzlich auf dem Bildschirm mit den schwarzen Times Roman Text auf weißem Hintergrund? Und was ist mit Navigations-Symbolleiste Ihrer Website? Wenn ein Benutzer hat Fragen über die Fehler, die angezeigt wird, wie kann er finden Sie Ihre Kontakt-Seite? Benutzer müssen nicht einmal Ihren Standard-Fußzeile mit einem Link an den Webmaster. Plötzlich ist diese raffinierte automatischen Werkzeugwechsel nicht aus, als nützlich, da sie nicht auf den ersten Blick. In der Tat haben viele Entwickler einfach aufgegeben es aus diesem Grund. Es ist ein Problem, das gelöst werden kann, jedoch zumindest in stärkerem Maße als die Seite verlassen, in dieser Ebene blackon-Weiß-Format. Sie können das gesamte Layout der Seite zu kontrollieren (Farbe, Schriftart, und so weiter) mit normalen HTML-Tags. Sie können sogar Ihre Navigations-Symbolleisten und andere Funktionen direkt auf der Seite. Die Lösung besteht darin, Ihren Code CFERROR Typ add = "Validation", mit dem Sie eine Fehlerbehandlung Vorlage der eigenen Einrichtung zu formatieren, das Aussehen benennen können gerade diese Validierungsfehler. Der letzte der drei Probleme in Bezug auf den Teil über die Verwendung dieser automatischen Server-seitige Validierung gekennzeichnet werden können, die schlimmste von allen, und für viele, sie Grund genug, um nicht selbst empfehlen die Nutzung von Server-Side-automatische Validierung ist. Das Problem ist, dass der Prozess der Benutzer "verwenden Sie die Schaltfläche" Zurück "auf Ihrem Web-Browser, um zur vorherigen Seite zurückkehren und die genannten Probleme zu beheben erfordert." Ist das eine gute Sache zu empfehlen? Wahrscheinlich nicht. In einigen Fällen führt so zu tun, dass die Informationen in das Formular eingetragen haben verloren! Stellen Sie sich die Frustration eines Benutzers Ausgaben ein gutes Stück Zeit das Ausfüllen eines Anmeldeformulars, dass die Aufforderung für mehrere Stücke von Daten ist. Er / sie macht, ist gesagt, dass es ein Fehler (vielleicht auch nur ein Fehler), und der Benutzer enthält, trifft die Schaltfläche Zurück, nur um festzustellen, dass das Formular gelöscht wird! Und Sie tun können, absolut nichts über dieses Problem. Im Allgemeinen ist es im Zusammenhang mit der Browser-Caching Probleme, die nicht leicht zu kontrollieren sind. Sie können sich denken, dass dies keine große Sache trotzdem, weil andernfalls die erforderlichen Validierung bedeutet, dass der Benutzer nicht geben alles für das gewünschte Feld in der ersten Ort, aber bedenken Sie, dass Sie auch sein mögen fragen, für mehrere Felder von Daten, von denen nur eine nicht die Validierung. Die Frage ist nicht, dass schwerwiegende, wenn die Eingabeaufforderung nur für Benutzername und Passwort. Aber in einer komplexeren Form könnte es in der Tat ein großes Problem. Seien Sie sensibel auf die Herausforderung. Glücklicherweise Alternativen in der Client-Seite existieren Bestätigung dafür, dass wir später diskutieren. Denn jetzt, Sie andere Arten von Validierungen haben, dass Sie kann durch die Verwendung dieser automatischen Server-seitige Validierung durchzuführen. Nachdem Sie verstehen, wie der Prozess funktioniert im Allgemeinen, was Sie über den anderen Richtlinien zu lernen. Neben den _REQUIRED Validierung, mehrere bieten einige der einfacher Bestätigungen, dass wir, die zuvor in diesem Artikel. So einfach, wie diese Optionen erscheint, müssen Sie sich bei bestimmten Fragen bewusst, die meisten von ihnen. Viele dieser Fragen drehen sich um die Tatsache, dass zusätzlich zu den nur die Validierung der Daten eingegeben haben, die Validierung, ändert sich auch die Daten in einigen Fällen, bevor sie geht auf die Klage-Seite und in einer Weise, die möglicherweise nicht offensichtlich sein, noch zu erwarten, da Die folgende Liste beschreibt: _integer: Wenn die Zahl durch den Benutzer eingegeben enthält Kommas oder Dollar-Zeichen, sind diese Zeichen für die Validierung entfernt und sind nicht an der Aktion Seite übergeben. Die Dokumentation sagt auch, dass es die Anzahl Runden eingetragen, wenn es Dezimal-Werte enthält, aber in der Tat, es ist einfach schneidet sie. _float: Entfernt Kommas und Dollar-Zeichen die gleiche Weise, dass _integer tut, sondern auch die Zahl konvertiert (wie auf der Seite Aktion vorgelegt), so dass es mit sechs Stellen hinter dem Komma, mit Nullen aufgefüllt. _range: Erwartet, dass der Bereich der Werte in den value-Attribut angegeben werden, wie min = max = xxx yyy, durch ein Leerzeichen getrennt. Es behandelt auch Zahlen wie _float hat (erlaubt Dezimalwerte und Umwandlung der Zahl, so dass es sechs Plätze rechts von Nachkommastellen, sowie das Entfernen Kommas und Dollar-Zeichen). _range Kann auch nur eine Grenze festlegen. (Aber es muss ein Leerzeichen nach der Anzahl, wie sie im = 5 min. Es kann nicht staatliche min = 5 mit keinen Raum, mindestens jedoch vor Version 5, da dies wäre ein schwerer Fehler. Verursachen) Schließlich, weil die Bereich ist in der VALUE-Attribut angegeben, können Sie nicht bieten eine benutzerdefinierte Meldung für eine fehlgeschlagene Validierung Bereich. _date: Nimmt eine breite Palette von Formaten, wie z. B. 12/2/01, 12/2/2001, und sogar 12-2-01, 12 / 2, 2. Dezember, 2. Dezember, und so weiter. Noch wichtiger ist, wandelt sie das eingegebene Datum zu einer ODBC-Datumsformat: 12/13/01 wird (d '2001-12-13 '). Das ist in Ordnung, wenn Sie den Wert in einer ODBC-Datenbank gespeichert sind (weil sie erspart Ihnen die Notwendigkeit, dem Zeitpunkt auf dieses Format zu konvertieren), aber wenn es für die Anzeige über ein Aktionsprogramm zur Seite benötigt (oder in einem nicht-ODBC-Datenbank) , müssen Sie es konvertieren. Achten Sie auf die DateFormat ()-Funktion, die für die Verwendung auf die neue Version konvertiert in eine reguläre Datum-Format zur Verfügung steht. Wenn das Jahr weggelassen wird ein Datum, geht diese Richtlinie im laufenden Jahr. Wenn nur eine einzige Zahl eingegeben wird, aber (vielleicht in der Absicht ein Datum in der aktuellen Monat), dann funktioniert es nicht bei allen. Diese einzelne Zahl als ein ungültiges Datum. _date Abgelehnt wird akzeptiert europäisch-Format (Tag vor dem Monat), wenn es der einzige Weg, dass das Datum gültig sein konnte: 13.12.01, daher wird allgemein anerkannt und wird (d '2013-12-01 '). Trotzdem, mit dem _eurodate Option ist vorzuziehen, um mit nur _date, wenn Ihre Benutzer eingeben, deren Daten in der Europäischen Format. Merkwürdig ist, dass, wenn der eingegebene Wert ist entweder kein gültiges Datum (13/13/13) oder nicht, einen Zeitpunkt für alle (x), die Standard-Nachricht für beide ist einfach: Der Wert für die einzelnen Felder Feld ( "Wert" eingegeben wurde) nicht korrekt formatiert. Nicht wirklich zu vermitteln, die sie braucht, um ein Datum sein, geschweige denn eine gültige ein. Dies deutet darauf hin, dass Sie sollten wirklich eine benutzerdefinierte Meldung geben. _eurodate: Aktien alle Facetten des _date. Der einzige Unterschied ist, dass der Standard-Format erwartet, dass die Europäische Ordnung der Tag, pro Monat (und dann folgte, optional, Jahr). _time: Wie funktioniert _date, überprüft diese Richtlinie nicht nur die Zeit, sondern auch wandelt sie in eine ODBC-Format Zeit: 1:12 wird (t '01: 12:00 '). Wie bei _date, ist diese Umwandlung in Ordnung, wenn Sie die Speicherung sind die Daten in einer ODBC-Datenbank (wie es erspart Ihnen die Notwendigkeit, sie auf dieses Format zu konvertieren), aber wenn es für die Anzeige über ein Aktionsprogramm zur Seite benötigt (oder in einer gespeicherten Nicht-ODBC-Datenbank), müssen Sie es konvertieren, indem Sie die verfügbaren TimeFormat ()-Funktion. _time akzeptiert a / bin / bin und p / pm / pm für einen Zeitraum Bezeichnung. Wird die Bezeichnung weggelassen wird, nimmt es bin. Sie können auch nur eine Stunde und eine Zeit Kennung, wie 10 geben, die davon ausgeht, dass Stunden (10:00:00). Wenn nur eine einzige Zahl, ohne einen Zeitraum Kennung eingegeben wird, aber, vielleicht, weil der Benutzer beabsichtigt, eine Zeit, in der Morgen bedeutet, wird dieser Wert als eine ungültige Zeit abgelehnt. Seltsam, ob ein Datum eingegeben wird, akzeptiert sie, aber sie Verstecke, um den Wert (t '00: 00:00 '), was bedeutet, Mitternacht. (Ein solches Ergebnis kann logisch, ist aber nicht wahrscheinlich von den meisten Entwicklern erwartet.) Ein paar andere allgemeine Fragen für einen oder mehrere dieser Server-seitige Validierungen, wie die folgende Liste beschreibt: Wie in den Beispielen weiter oben im Artikel, wo wir sowohl die Benutzernamen und Kennwort Validierung nachgewiesen wurden, können Sie natürlich, zu validieren mehr als ein Feld zu einer Zeit, in einem Formular. Fügen Sie einfach ein hidden-Feld-Tag für jedes Feld, das Sie überprüfen möchten. Die Fehlermeldung angezeigt spiegelt auftreten, alle Fehler, die Validierung. Sie können auch mehr als eine Validierung pro Feld. Um anzuzeigen, dass ein Feld "Alter" auch erforderlich ist, und muss eine ganze Zahl, zum Beispiel, erstellen Sie einfach zwei versteckte Feld-Tags genannt age_required und age_integer, respectively. Hinzufügen einer Validierung der Regel auf ein Feld, macht es nicht ein Pflichtfeld. Sie benötigen ein eigenes _REQUIRED verstecktes Feld, wenn Sie zB Zugang gewährleistet werden soll. Sie können über die Auswirkungen auf die serverseitige Verarbeitung Zeit Sorgen machen, wenn es immer diese Validierung durchführen. Jedes Mal, verloren zu vernachlässigen ist, wirklich, im Vergleich zu wichtiger Performance-Entwässerung Facetten. Sie brauchen ein Gesicht unglücklichen Ausgang jedoch, dass Sie stets bewusst bleiben: CF Aktion Seiten schaue immer auf ein Formular aus, um festzustellen, ob es Felder mit der Endung enthält die Endungen. Außerdem entfernt es dann die Felder aus der Liste der Formularfelder in die Datenbank zu aktualisieren Tags verwendet CFINSERT und cfupdate. Dies ist ein Problem verursachen könnten, wenn Sie ein solches Feld in Ihrer Datenbank als Joined_Date (dh dem Zeitpunkt, dass ein Benutzer ist Ihr Service) . CF sehen würde jede Form Feld mit diesem Namen (Joined_Date) als eine Bestätigung für einen "Beitritt" ein. Schlimmer noch, weil es dann, dass Joined_Date Feld zu entfernen würde, bevor die Verarbeitung oder CFINSERT cfupdate, können Sie feststellen, dass die Spalte nie eingefügt / aktualisiert. Again, nur werden sich des Problems bewusst. Es ist oft eine Quelle der sehr schwer zu beheben Fehler. Damit ist ein schneller Überblick über die automatische Server-Validierung. Es ist ein Feature, dass die Plus-und Minus hat. Aber ein vorrangiges Anliegen sein sollte, dass durch die serverseitige Überprüfung der Benutzer Kräfte zu sichern, um Fehler zu korrigieren, eigentlich sollte es nicht verwendet werden, wenn die Form der Benutzer aufgefordert werden, mehr als ein paar Eingabefelder. (Und man später sehen, daß handcodierte-serverseitig Validierung ist für ganz andere Zwecke verwendet.), Sondern, wenn Sie mehrere Formularfelder validieren müssen, können Sie eine viel bessere Benutzerfreundlichkeit durch die Verwendung von Client-Validierung Verfügung stellen und die automatischen Funktionen in CF machen dies sehr leicht zu tun, auch wenn Sie nicht wissen, JavaScript. Ein Artikel eingereicht von Jill Babcoff Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Verbesserung der Fehlermeldung" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 270 users browsing the articles directory |
|
|