Was ist der beste Weg, um ein Formular und Anzeigefehler ohne-Skript neu zu besiedeln?

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

  •  05-07-2019
  •  | 
  •  

Frage

Ich baue eine Anwendung, die Ajax-Aufrufe für Form Validierungen und einige andere verwendet, Problem ist, dass ich es nicht mag, wenn diese Validierungsfehler ohne CSS überhaupt auf einer neuen Seite zeigt und vollständig zurückgesetzt wird Form ohne die Javascripts.

Ich spreche über ein Dutzend Formen so, wird es ziemlich ärgerlich sein, dass der Benutzer über durch Formulare zu gehen und immer wieder.

Ich habe einige Antworten zu diesem Thema gelesen, aber gibt es eine bestimmte Art und Weise, eine Best-Practice für eine Situation wie diese (mehr entlang der Linien von Formularvalidierung)?

Entschuldigt, wenn es eine Antwort bereits.

Edit:

Alle Validierungen sind auf der Serverseite durchgeführt, zur Zeit werden die Fehler mit Hilfe von Ajax angezeigt werden. Was ich möchte, ist eine bequeme Methode zur Wiederbesiedelung der Form und Anzeigefehlern ohne Javascript, wenn ein Fehler während auftritt, um die Form zu verarbeiten.

War es hilfreich?

Lösung

Ich bin mir nicht sicher, ob Sie Ihre Frage sind was bedeutet, dass Sie auf dem Server validieren nicht - dies als ganz offensichtlich eine große Sicherheitslücke angesehen würden Formen durch einfaches Abschalten Javascript umgangen werden könnte. Sie haben in dem Server jedes Mal zu überprüfen, während der clientseitige Validierung einfach schön zu tun.

Darüber hinaus das „Problem“ der Formen selbst neu einstellen zu müssen, wenn die Seite neu geladen wird gegenstandslos wird, wenn man ein anständiges Framework verwenden - In Python, Django Auto-füllt ihn wieder auf Formen im Fall von Fehlern. In PHP, CakePHP und CodeIgniter auch tun, und ich bin sicher, dass die meisten guten Rahmenbedingungen tun dies, wie es unter der Kategorie „allgemeine Aufgaben“ fällt, dass Gerüste weg abstrakt sollen.

Jedes Mal, wenn ich nicht einen Rahmen verwenden, schreibe ich meine eigene kleine Form-Klasse auf, die die Notwendigkeit füllt.

Bearbeiten :

Ich bin nicht von irgendetwas bewusst Sie Plug-in könnte, was Sie das Formular in der Lage sein müssen, um wieder zu bevölkern. Ihre beste Wette ist Ihre eigene kleine Klasse für sie zu schreiben, das nicht mehr als 1 Stunde dauern sollte.

Andere Tipps

Was ich normalerweise tun ist, speichern alle Fehlerzeichenfolgen in einem Array in einer Sitzungsvariablen (ich benutze PHP). Wenn es auf der Server-Seite ein Fehler ist, leitet die Benutzer zurück auf die Formularseite, überprüfen Sie für die Sitzung var, und die Fehler gegebenenfalls anzuzeigen. Stellen Sie sicher, dass Sie die Sitzung var unset Speicher freizugeben, nachdem Sie es angezeigt werden soll. Das Gleiche gilt das Formular für die Wiederbesiedelung - Werte in einer Sitzung var.

Formularvalidierung sollte, später auf dem Client auf dem Server geschrieben werden. Sie sollten auf jeden Fall auf dem Server zu validieren. Sie nicht für etwas so einfach auf Ajax verlassen und als entscheidend für den Betrieb Ihrer Website als Formularvalidierung. Mit unaufdringlich Scripting, können Sie das Standardformular submittal verhindern und bearbeiten Sie dann das Formular mit Ajax. Andernfalls kann der einreichen durch zu gehen und mit einem Server generierte Validierung Seite reagieren.

Führen Sie Ihre Validierungen auf der Serverseite und die Formulare neu zu besiedeln.

Validierung über AJAX ist schön , kann aber nicht erzwungen werden. Somit ist es effektiver die Validierungen durchgeführt werden, ob oder nicht die AJAX passiert. Ich würde eine zweite Route vorschlagen, die Validierungen umgehen kann und eine Reihe von Fehlern in JSON für diejenigen überschreiten zurück, die haben Javascript. Aber für diejenigen ohne JavaScript aktivieren, funktioniert der einzige Weg, um Ihre Validierungen ist über den Server-Seite.

Sie erhalten nicht wirklich eine Wahl in diesem, leider. Jeder halbwegs anständige Programmierer oder Hacker mit Firebug können sie JavaScript bearbeiten, lösen Haken und bekommen um alles, was Sie versuchen, auf seine Seite zu tun. Paranoid und erzwingen die Validierung auf der Serverseite

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top