Eingabe auf Anfangsswert prüfen
HP-User
- javascript
0 bleicher0 Der Martin0 HP-User0 Der Martin0 HP-User
0 Gunnar Bittersmann- html
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
Grüße,
string ist ein array.
MFG
bleicher
string ist ein array.
Deshalb könntest du substr() verwenden.
Matthias
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
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:
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?
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:
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
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
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
@@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'