137 Nachrichten unter 42 Themen von 49 Mitgliedern
[SilverStripe Roadmap][Changelog]

Required - Individuelle Überprüfung und Text

Seite: 1 1143 mal gelesen
  • McKinne
    Community Member
    78 Beiträge

    Required - Individuelle Überprüfung und Text

    Hallo an alle,

    wie kann ich bei einem selbst erstellten Formular die Required optionen selbst festlegen.

    Momentan wird nur überprüft das etwas drinsteht.
    $validator = new RequiredFields(
    'Name',
    'Email',
    'Message'
    );


    Ich möchte aber einen induellen Text, z.Bsp wenn das Feld 'Name' zu wenig Zeichen enthält bzw. wenn es gar nicht ausgefüllt ist.

    Habe schon in der API von Silverstripe geschaut, aber nichts gefunden.

    cu Micha
  • zlimfur
    zlimfur Community Member
    2 Beiträge

    Re: Required - Individuelle Überprüfung und Text

    Ich löse das immer mit jQuery und unterdrücke dabei die Forms messages..

    <script type="text/javascript">//<![CDATA[
    jQuery(document).ready(function() {
        jQuery("#Form_Bewerbung").validate({
        rules: {
        Vorname: {
           required:true,
           maxlength: 20
        },
        Name: {
           required:true,
           maxlength: 30
        },
        Strasse: {
           required:true,
           maxlength: 30
        },
        Nr: {
           required:true,
           maxlength: 10
        },
        PLZ: {
           required:true,
           maxlength: 8
        },
        Ort: {
           required:true,
           maxlength: 30
        },
        Land : {
           required:true,
           maxlength: 30
        },
        Telefonnummer: {
           required:true,
           maxlength: 20
        },
        Mobilfunk: {
           required:false,
           maxlength: 20
        },
        Email: {
        required: true,
        maxlength: 64,
        email: true
        }
        Bemerkung: {
        required: false,
        maxlength: 256
        }
        },
        messages: {
        Vorname : "Vorname ist ein Pflichtfeld",
        Name: "Name ist ein Pflichtfeld",
        Strasse : "Strasse ist ein Pflichtfeld",
        Nr : "Nummer ist ein Pflichtfeld",
        PLZ : "PLZ ist ein Pflichtfeld",
        Ort : "Ort ist ein Pflichtfeld",
        Land : "Land ist ein Pflichtfeld",
        Telefonnummer : "Telefonnummer ist ein Pflichtfeld",
        Mobilfunk : "Mobilfunk ist ein Pflichtfeld",
        Email : "Email ist ein Pflichtfeld",
        Bemerkung : "Anmerkungen ist auf 256 Zeichen begrenzt"
        }
        });
        });

    //]]></script>
  • McKinne
    Community Member
    78 Beiträge

    Re: Required - Individuelle Überprüfung und Text

    Danke ür die Antwort.

    Was passiert aber, wenn der User Javascript deaktiviert hat.
    Ich suche eine Lösung mit JS bzw. ohne JS.

    Ich vermute das geht auch über Silverstripe. Aber ich finde bzw. sehe es nicht in der API :(
  • lx
    lx Community Member
    7 Beiträge

    Re: Required - Individuelle Überprüfung und Text

    Die Lösung in Javascript ist schön wegen der sofortigen Rückmeldung bei der Eingabe.
    Aber nicht nur das Problem bei abgeschaltetem Javascript.
    Wenn man sichergehen muss, dass im Formular gültige Angaben gemacht wurden, muss die Validierung serverseitig erfolgen.

    Deshalb solltest du dir dieses Modul runterladen.
    http://www.netefx.de/Silverstripe-NetefxValidator.php

    Damit kannst du das alles machen.
    Ich hoffe du kommst mit der Anleitung zurecht.
    Da musst du etwas Zeit einplanen um es zu lesen.

    Um Zeichenlängen zu validieren (mind./max. x Zeichen) musst du dir den RegExp - Teil angucken.
    Das in {} gibt die Zeichenzahl an.

    Zusätzlich könntest du bei einer Userregistrierung über die UNIQUE regel abfangen, dass sich kein User registrieren kann, der bereits registriert ist. (Ich sehe gerade, dass dein Formular verutlich ein Emailformular ist. Dann braucht man das natürlich nicht).

    Viel Spass damit

    Gruß
    lx
  • McKinne
    Community Member
    78 Beiträge

    Re: Required - Individuelle Überprüfung und Text

    Danke lx für deinen Hinweis.

    Werde versuchen eine Lösung zu finden.
    Wenn ich Fragen habe, schreibe ich sie hier in diesen Thread.

    cu Micha
  • lx
    lx Community Member
    7 Beiträge

    Re: Required - Individuelle Überprüfung und Text

    Um die die "Lösungsfindung" etwas zu erleichtern, hier der code:


    $rule_NameMindestlaenge = new NetefxValidatorRule("Name", "REGEXP", array("/^.{3,}$/"), "Der Name muss mind. 3 Zeichen haben.");
    $rule_NameMaxlaenge = new NetefxValidatorRule("Name", "REGEXP", array("/^.{0,20}$/"), "Mehr als 20 Zeichen ist nicht zulässig beim Namen. Bitte besorgen sie sich einen anderen Namen.");
    $rule_EmailRequired = new NetefxValidatorRule("Email", "REQUIRED", "", "Bitte geben Sie die Emailadresse an.");
    $rule_MessageMindestlaenge = new NetefxValidatorRule("Message", "REGEXP", array("/^.{5,}$/"), "Bitte formulieren Sie Ihre Anfrage etwas ausführlicher.");
    $rule_MessageRequired = new NetefxValidatorRule("Message", "REQUIRED", "", "Feld Nachricht nicht ausgefüllt!");


    $validator = new NetefxValidator($rule_NameMindestlaenge, $rule_EmailRequired, $rule_MessageMindestlaenge, $rule_MessageRequired);

  • McKinne
    Community Member
    78 Beiträge

    Re: Required - Individuelle Überprüfung und Text

    Mit etwas Verspätung.

    Aber danke für deine Hilfe. Werde es gleich ausprobieren.

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: saerdna