HTML Clientseitige Validierung von Formulardaten

EOL15

Member
Auch wenn HTML nicht wirklich etwas mit Programmierung zu tun hat, so treibt mich doch grade ein Problem um, welches ich nicht gelöst bekomme. Das Internet schweigt sich auch darüber aus und wenn ich etwas finde, dann will das nicht wirklich funktionieren. Von daher stell ich hier mal meine Frage und der Hoffnung, das mir jemand weiter helfen kann.

Ich bin dabei, ein mehrseitiges HTML-Formular aufzubauen. Zur Überprüfung der Formulareingaben verwende ich die clientseitigen Validierung von HTML5. Unter anderem wird hierbei geprüft, ob ein Pflichtfeld ausgefüllt wurde. Falls nicht, kann man das Formular nicht abschicken bzw. wird man nicht zur nächsten Seite weitergeleitet. So weit, so gut. Das läuft auch alles, aber....

Wenn ich über einen "Zurück" Button auf auf die Formular-Seite davor wechseln möchte und habe dabei im Vorfeld ein Pflichtfeld nicht ausgefüllt, springt ebenfalls die clientseitige Validierung an, welche mich auffordert, das Pflichtfeld doch bitte auszufüllen. Das ist aber eigentlich totaler Blödsinn, will ich doch meine Eingaben auf der Seite davor korrigieren.

Hierfür bräuchte ich eine Lösung. Ich habe es mit <button... und mit <input... sowie <a href... Feldern probiert. Einzig ein Java history.back() funktioniert hier, da die Seite hierbei nicht neu geladen wird. Das ist aber nicht mein Ziel. Ich will und muss die Seiten neu laden, weil dahinter noch BASH-Abfragen werkeln. Im Internet habe ich ein paar JavaScript's gefunden, die aber alle nicht funktionieren.

Vielleicht hat ja jemand einen Tipp für mich.
 
Zuletzt bearbeitet:

EOL15

Member
Ich habe es mit [...] <a href... Feldern probiert...
.... aber anscheinend wohl nicht richtig. 🤦‍♂️ ... denn mit einem <a href... geht es sehr wohl. Ich hatte aber nur BASH-Abfragen für die POST-Strings, nicht aber für die GET-Strings gesetzt und da meine Formulare mittels POST und Links bekanntlich mit GET übermittelt werden, konnte das auch nicht gehen. Jetzt lüppt dat! 💪

Nichts desto trotz.... falls hier noch jemand andere Idee oder Vorschläge hat, wie man die clientseitigen Validierung bei einem Rückwärtsschritt deaktivert, würde ich mich sehr Antworten freuen.
 

Nival

-
Moderator
Wenn ich über einen "Zurück" Button auf auf die Forumlar-Seite davor wechseln möchte und habe dabei im Vorfeld ein Pflichtfeld nicht ausgefüllt, springt ebenfalls die clientseitige Validierung an, welche mich auffordert, das Pflichtfeld doch bitte auszufüllen. Das ist aber eigentlich totaler Blödsinn, will ich doch meine Eingaben auf der Seite davor korrigieren.
Verstehe ich das richtig, es geht dabei nicht um eine vorherige nicht valide Angabe durch die der Benutzer garnicht erst auf der Folgeseite hätte landen dürfen, sondern um eine sonstige Korrektur? In dem Fall hilft es, <form> ein novalidate hinzuzufügen als Attribut, das deaktiviert die Überprüfungen. Das müsste natürlich mit Javascript geschehen und nur in dem Moment, wo der Zurück-Button betätigt wird.

Am einfachsten und direkt für alle Zurück-Buttons ließe sich das umsetzen, wenn jQuery eingebunden ist und allen betreffenden Buttons eine Klasse zugewiesen wird. Kein schönes, aber so voll funktionales Beispiel:
HTML:
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<form>
    <input type ="text" required>
    <input type = "submit" value="validate">
    <input type = "submit" value="no_validate" class = "disable_validation">
</form>
<script>
$(function () {
    $('.disable_validation').click(function() {
        $(this).parents("form").attr('novalidate', 'novalidate');
    });
});
</script>
Wenn noch etwas unklar ist, gerne nachfragen :)
 

EOL15

Member
Hammer! 👍

Das klappt wunderbar. Vielen lieben Dank für diesen Codeschnipsel!

Ich kann zu meiner Verteidigung nur sagen, das JavaScript bzw. jQuery nicht so wirklich meins ist, auch wenn ich jQuery bereits in meinem Projekt (lokal) implementiert habe und bereits zwei oder drei solcher Scripte einsetze. Aber! Mann lernt halt nie aus.
 

Nival

-
Moderator
Sehr schön 👍

Und... man kann ja nicht alles auswendig wissen. Ich habs mehr mit jQuery, dafür kann man mich mit Bash relativ weit jagen sobald es etwas komplexer wird ;)
 

EOL15

Member
So hat jeder seinen Fetisch 🤭

Früher habe ich Webseiten in Verbindung mit PHP und mySQL betrieben. Das ist aber schon lange her, so das ich heute nur noch bruchstückhaftes Wissen vorweisen kann. Seit geraumer Zeit erstelle ich eine spezielle Art von Webseiten in einer Linux Umgebung und binde den ganzen HTML/CSS/jQuery/JavaScript Quatsch an BASH. So gesehen baue ich hier Web-GUIs um BASH über den Browser auszuführen. Das ginge sicherlich auch mit Python oder Perl, aber auch diese beiden Sprachen sind mir eher fremd. Grade über Perl habe ich mal gehört, das der Code, nachdem man diesen Verschlüsselt hat, noch genau so aussieht wie vorher 😅 und das passt nicht in mein perfektionistisches Beuteschema.
 

Nival

-
Moderator
PHP / DBs ist jetzt auch eher mein Bereich, aber bei HTML / CSS / JS kann ich durchaus ebenfalls aushelfen. Zumindest bei konkreten Fragen, in Sachen Design... lassen wir das Thema besser :censored:

Würde ich Bash über den Browser ausführen lassen wollen würde ich jedenfalls zweifellos den "Umweg" über PHP gehen, so auf Anhieb habe ich nichtmal eine Idee wie das anderweitig funktionieren könnte.
 

EOL15

Member
Das Zauberwort heißt hier CGI Script! Falls es dich interessiert, kannst du dir nachfolgenden Link mal anschauen. Das trifft schon ganz gut, wie ich das hier auch mache… vom Prinzip her jedenfalls!


Und ich hätte da vielleicht noch eine Frage bzw. ein Problem zum Thema jQuery. Für heute habe ich aber genug gescriptet ( gibst das Wort überhaupt? ) und rumgetüftelt. Vielleicht stell ich die Frage in den nächsten Tagen, in einem neuen Thread, mal sehen. Vielleicht fällt mir bis dahin ja selber noch eine Lösung ein.

Schau‘n mer mal
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Neueste Beiträge

Letzte Anleitungen

Statistik des Forums

Themen
565
Beiträge
8.272
Mitglieder
193
Neuestes Mitglied
cekap
Oben