HP-User: Eingabe auf Anfangsswert prüfen

Hallo Forum

Mit diesem hier:

if (document.selfautor.customstorycode.value == "") {
    alert("Bitte geben Sie den Story-Code Ihrer Geschichte an");
    document.selfautor.customstorycode.focus();
    return false;
  }

überprüfe ich, ob das Inputfeld überhaupt gefüllt wurde.
Wenn ich in die "" eingebe "KG", dann überprüft der Browser, ob die Buchstabenkombination KG vorhanden ist. Wie kann ich erreichen, daß der Browser überprüft, ob "KG" unmittelbar am Anfang steht?

Die "Story-Codes" sind alle im Format "KG123X" vorgegeben. Wobei KG immer da steht, "123" kann theoretisch von 000 bis 999 vorhanden sein. Letzter Character ist immer ein J, M oder A.

Im Prinzip reicht mir ja schon die Überprüfung ob leeres Feld oder nicht. Schön wär halt das KG am Anfang gecheckt würde.

Und PS.: Ich weiß das Serverseitige Überprüfung nötig ist. Mach ich sowieso. Ich will nur etwas den Traffic entlasten... *g*

Gruß HP-User

  1. Grüße,
    string ist ein array.
    MFG
    bleicher

    --
    __________________________-

    FirefoxMyth
    1. string ist ein array.

      Deshalb könntest du substr() verwenden.
      Matthias

      --
      1/z ist kein Blatt Papier.

  2. Hallo,

    if (document.selfautor.customstorycode.value == "")

    Wenn ich in die "" eingebe "KG", dann überprüft der Browser, ob die Buchstabenkombination KG vorhanden ist.

    nein, das ist falsch. Richtig ist: Dann prüft der Browser, ob exakt die Kombination "KG" und sonst nichts eingegeben wurde. Aber bereits bei der Benutzereingabe "KGG" trifft die obige Abfrage schon nicht mehr zu.

    Wie kann ich erreichen, daß der Browser überprüft, ob "KG" unmittelbar am Anfang steht?

    Indem du nur den Teil des eingegebenen Strings ab Position 0 und mit der Länge von 2 Zeichen überprüfst, und nicht den gesamten String.
    Eventuell möchtest du den String vor dem Vergleich noch in Großbuchstaben umwandeln, damit der Nutzer freundlicherweise auch Kleinbuchstaben eingeben darf und die Eingabe trotzdem als richtig akzeptiert wird.

    Und PS.: Ich weiß das Serverseitige Überprüfung nötig ist. Mach ich sowieso. Ich will nur etwas den Traffic entlasten... *g*

    Dann is' ja gut. :-)

    Ciao,
     Martin

    --
    Programmierer (m), seltener auch P~in (w):
    Irdische, i.a. humanoide Lebensform, die in einem komplizierten biochemischen Prozess Kaffee, Cola und Pizza in maschinenlesbaren Programmcode umwandelt.
    P~ bilden gelegentlich mit ihresgleichen kleine Gruppen, sogenannte Communities, sind aber ansonsten meist scheue Einzelgänger.
    P~ sind vorwiegend nachtaktiv und ohne technische Hilfsmittel nur eingeschränkt lebensfähig.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hallo nochmal

      Wenn ich in die "" eingebe "KG", dann überprüft der Browser, ob die Buchstabenkombination KG vorhanden ist.

      nein, das ist falsch. Richtig ist: Dann prüft der Browser, ob exakt die Kombination "KG" und sonst nichts eingegeben wurde. Aber bereits bei der Benutzereingabe "KGG" trifft die obige Abfrage schon nicht mehr zu.

      Hmm, ansonsten hast du ja immer recht, aber das kann nicht sein. "KG" läßt auch KG-"irgendwas"- zu, und blockiert nicht weiter. Also in meinem Beispiel scheint es zu funktionieren. Ein kurzer "Spick" folgt hier:

      nur_für_kurze_Zeit

      Und PS.: Ich weiß das Serverseitige Überprüfung nötig ist. Mach ich sowieso. Ich will nur etwas den Traffic entlasten... *g*

      Dann is' ja gut. :-)

      Gell, seh ich auch so... *g*

      Gruß HP-User

      PS.: Die Leerabfrage und das Vorhandensein von "KG in der Eingabe" scheint zu gehen. Oder jemand anderer Meinung?

      1. Hi,

        Wenn ich in die "" eingebe "KG", dann überprüft der Browser, ob die Buchstabenkombination KG vorhanden ist.
        nein, das ist falsch. Richtig ist: Dann prüft der Browser, ob exakt die Kombination "KG" und sonst nichts eingegeben wurde. Aber bereits bei der Benutzereingabe "KGG" trifft die obige Abfrage schon nicht mehr zu.
        Hmm, ansonsten hast du ja immer recht, aber das kann nicht sein.

        bist du sicher? ;-)

        zu "KG" läßt auch KG-"irgendwas"- zu, und blockiert nicht weiter. Also in meinem Beispiel scheint es zu funktionieren. Ein kurzer "Spick" folgt hier:

        nur_für_kurze_Zeit

        Das ist was anderes als dein erstes Beispiel. Hier verwendest du nämlich indexOf() und keine direkte Abfrage des Eingabestrings auf Gleichheit. Ich hatte erst überlegt, ob ich indexOf() vorschlagen sollte, fand aber substr() hier passender.
        Übrigens lässt deine jetzige Lösung jede Eingabe zu, die das Paar "KG" an irgendeiner Stelle enthält - also würde "4ZKG60" auch durchgehen. Wenn du indexOf() verwenden möchtest, solltest du prüfen, ob das Ergebnis 0 ist (String wurde an Position 0 gefunden).

        Ciao,
         Martin

        --
        Das Gehirn ist schon eine tolle Sache: Es fängt ganz von allein an zu arbeiten, wenn man morgens aufsteht, und hört erst damit auf, wenn man in der Schule ankommt.
          (alte Schülererkenntnis)
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Hi Martin

          Das ist was anderes als dein erstes Beispiel. Hier verwendest du nämlich indexOf() und keine direkte Abfrage des Eingabestrings auf Gleichheit. Ich hatte erst überlegt, ob ich indexOf() vorschlagen sollte, fand aber substr() hier passender.

          Ups - Du hast recht. Da sah ich wohl vor Lauter Bäumen den Wald nicht mehr...

          Übrigens lässt deine jetzige Lösung jede Eingabe zu, die das Paar "KG" an irgendeiner Stelle enthält - also würde "4ZKG60" auch durchgehen. Wenn du indexOf() verwenden möchtest, solltest du prüfen, ob das Ergebnis 0 ist (String wurde an Position 0 gefunden).

          Ja, auch da hast du Recht. (sagte ich nicht eingangs, daß du normalerweise immer Recht hast?)

          Gut, gut, für eine grobe Überprüfung ist das so schon in Ordnung. Gibt ja auch Leute ohne JS eingeschaltet (hab zwar noch keine gesehen, wird hier aber immer wieder felsenfest behauptet). *g*

          Wenn ich die Teilnahmebedingungeg fertig habe , darf ich an die Perl-Engine. Aber jetzt ist erst mal Pause, muß noch weg - einen Schalterschrank installieren.....

          Gruß HP-User

          1. Hallo,

            Ja, auch da hast du Recht. (sagte ich nicht eingangs, daß du normalerweise immer Recht hast?)

            na na, übertreib mal nicht. Das glaubt dir sowieso keiner. :-)

            Gut, gut, für eine grobe Überprüfung ist das so schon in Ordnung. Gibt ja auch Leute ohne JS eingeschaltet

            Ja, ich zum Beispiel. Ich erlaube meinen Browsern nur in wenigen Ausnahmefällen und für sorgfältig ausgewählte Sites, Javascript auszuführen. In den meisten Fällen surft man ohne einfach viel entspannter und muss sich nicht dauernd über irgendwelche nervtötenden Effekte ärgern.

            (hab zwar noch keine gesehen, wird hier aber immer wieder felsenfest behauptet). *g*

            Ich kenne eine ganze Menge. Nicht alle so konsequent wie ich, aber viele Firefox-User, die die NoScript-Extension verwenden und JS erst dann erlauben, wenn es offensichtlich notwendig ist.

            Ciao,
             Martin

            --
            There are 10 types of people in the world: Those who understand the binary system, and those who don't.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  3. @@HP-User:

    nuqneH

    überprüfe ich

    Wann immer es um clientseitige Überprüfung von Nutzereingaben geht, ist JavaScript zweite Wahl. Wenn überhaupt.

    ob das Inputfeld überhaupt gefüllt wurde.

    Dafür gibt es das HTML5-Attribut @required: 1. Beispiel in http://dabblet.com/gist/2906510

    Wie kann ich erreichen, daß der Browser überprüft, ob "KG" unmittelbar am Anfang steht?

    Mit dem HTML5-Attribut @pattern und einem Wert, der "KG" am Anfang hat und danach beliebige Zeichen zulässt: 2. Beispiel in http://dabblet.com/gist/2906510

    Die "Story-Codes" sind alle im Format "KG123X" vorgegeben. Wobei KG immer da steht, "123" kann theoretisch von 000 bis 999 vorhanden sein. Letzter Character ist immer ein J, M oder A.

    Dann also gleich ein Ausdruck, der das alles prüft: 3. Beispiel in http://dabblet.com/gist/2906510

    Vermutlich sollte man dem Nutzer auch gestatten, die Buchstaben als Kleinbuchstaben einzugeben. Und wenn sowieso "KG" am Anfang stehen muss, warum soll der Nutzer das eingeben müssen? Kann man auch gleich hinschreiben: 4. Beispiel in http://dabblet.com/gist/2906510

    Ob du _zusätzlich_ noch eine JavaScript-Lösung für die paar alten Browser, die @required und @pattern noch nicht unterstützen, implementieren willt? Der Aufwand lohnt vielleicht nicht die Mühe. Um eine serverseitige Überprüfung der Nutzereingaben wirst du sowieso nicht drumrumkommen. (Affenformular?)

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)