[GastForen Programmierung/Entwicklung JavaScript Feldprüfen bei Formular

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Feldprüfen bei Formular

r a c
Beiträge gesamt: 955

13. Nov 2003, 21:17
Beitrag # 1 von 9
Bewertung:
(3076 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich möchte in einem Formular ein Feld prüfen. Die Eingabe sollte nur aus Buchstaben und Zahlen bestehen, und mindestens 5 ,aber höchstens 14 Stellen haben. Ich kriegs aber nicht hin.

So weit mein Versuch


<script type="text/javascript"><!--
function checkform(){
if (document.form.Passwort.value == "") {
alert("Bitte gib ein Passwort ein.")
document.form.Passwort.focus();
return false;
}
if (document.form.Passwort.length > 4) {
alert("Dein Passwort ist zu kurz.")
document.form.Passwort.focus();
return false;
}
if (document.form.Passwort.length < 15) {
alert("Dein Passwort ist zu lang.")
document.form.Passwort.focus();
return false;
}
zeichen="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
if (document.form.Passwort.indexOf(zeichen.value.charAt(i)) == -1) {
alert("Dein Passwort enthält ungültige Zeichen.")
document.form.Passwort.focus();
return false;
}
}
// -->
</script>

Wer hat Ideen.
Grüsse
r a c

(Dieser Beitrag wurde von r a c am 13. Nov 2003, 21:19 geändert)
X

Feldprüfen bei Formular

Turicon
Beiträge gesamt: 161

14. Nov 2003, 07:39
Beitrag # 2 von 9
Beitrag ID: #58893
Bewertung:
(3076 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi rac,

hast Du die Abfrage nicht verdreht? Sollte es nicht < 5 und > 14 heißen?
So wie Du es jetzt hast, widerspricht sich ja die Abfrage und kann so nicht funktionieren.

Gruß,
Jens

|:. Webdesign von der Nordsee .:|
http://www.piske.de


als Antwort auf: [#58867]
(Dieser Beitrag wurde von Turicon am 14. Nov 2003, 07:41 geändert)

Feldprüfen bei Formular

r a c
Beiträge gesamt: 955

14. Nov 2003, 12:43
Beitrag # 3 von 9
Beitrag ID: #58946
Bewertung:
(3076 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Jens,

ja du hast recht.

Das kommt da her, dass ich schon beides ausprobiert habe.
Aber auch bei < 4 kommt nicht die erwartete Fehlermeldung.

Und die Prüfung der Zeichen klappt auch nicht. Da blieb es sogar jeweils hängen und ich musste diesen Teil rausnehmen, damit das Script durchlief.


als Antwort auf: [#58867]

Feldprüfen bei Formular

exquisitus
Beiträge gesamt: 247

14. Nov 2003, 17:04
Beitrag # 4 von 9
Beitrag ID: #59020
Bewertung:
(3076 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo r a c

das hast du noch ein paar bugs drin in deinem script. das kann so nicht funktionieren.
versuch mal sowas:

function checkForm()
{
var objPasswort = document.f1.passwort;
if (objPasswort.value == "") {
alert("Bitte gib ein Passwort ein.");
objPasswort.focus();
return false;
}
if (objPasswort.value.length < 5) {
alert("Dein Passwort ist zu kurz.");
objPasswort.focus();
return false;
}
if (objPasswort.value.length > 14) {
alert("Dein Passwort ist zu lang.");
objPasswort.focus();
return false;
}
var zeichen="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i=0; i<objPasswort.value.length; i++) {
if (zeichen.indexOf(objPasswort.value.charAt(i)) == -1) {
alert("Dein Passwort enthält ungültige Zeichen.");
objPasswort.focus();
return false;
}
}
}


hth
gruss
Steven


als Antwort auf: [#58867]

Feldprüfen bei Formular

r a c
Beiträge gesamt: 955

14. Nov 2003, 18:16
Beitrag # 5 von 9
Beitrag ID: #59029
Bewertung:
(3076 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Steven,

erstmal vielen Dank für deine Hilfe. Bei deinem Vorschlag krieg ich den Fehler value ist kein Objekt. Mir sagt das leider nicht viel.


als Antwort auf: [#58867]

Feldprüfen bei Formular

r a c
Beiträge gesamt: 955

14. Nov 2003, 18:40
Beitrag # 6 von 9
Beitrag ID: #59032
Bewertung:
(3076 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Tschuldigung Steven,

es geht doch. Exquisit. Funktioniert prima. Danke.

Der Feldname Passwort war im Formular gross und im Script klein, deshalb die Konfusion.

Danke
r a c


als Antwort auf: [#58867]

Feldprüfen bei Formular

Markus Walker
Beiträge gesamt: 494

20. Nov 2003, 08:01
Beitrag # 7 von 9
Beitrag ID: #59591
Bewertung:
(3076 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenn auch mit etwas Verspätung, ein Tipp, wie das Script schlanker werden könnte:

Um ein sogenanntes Pattern bestehend aus min. 5 max. 14 alphanumerischen Zeichen zu finden/testen/ersetzen/etc. gibt's bei JavaScript das RegExp Objekt:
http://selfhtml.teamone.de/...t/objekte/regexp.htm

Dies ist enorm mächtig und kann wohl den allermeisten Anforderungen in dieser Richtung gerecht werden. Obige Filterung würde dann wiefolgt aussehen:

...
var pattern = /\w{5,14}/; //wort min. 5 max. 14 Zeichen aus [a-zA-Z0-9_]
if (!pattern.test(objPasswort.value)) window.alert("Das Passwort ist ungültig");
...

Dabei wird alles miteinander getestet. Sollen die einzelnen Punkte separat getestet werden, können weitere Patterns erzeigt werden und z.B. mit einer switch/case Verzweigung die entsprecenden Ausgaben gemacht werden.
Sollte das "_" Zeichen in obigem Pattern unerwünscht sein, müsste die Definition wie folgt lauten:
var pattern = /\[a-zA-Z0-9]{5,14}/;


als Antwort auf: [#58867]

Feldprüfen bei Formular

oesi50
  
Beiträge gesamt: 2315

20. Nov 2003, 11:26
Beitrag # 8 von 9
Beitrag ID: #59623
Bewertung:
(3076 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi Markus,

Dein Suchmuster
var pattern = /\w{5,14}/;
trifft auch auf

' afddfsdfsdf dfgfsfg sdfsdfsd ' und 'dgdiponviguhgndgiohglkgndoighdglidgb' zu, da ja der gewünschte String darin enthalten ist.

Wenn ausschließlich nur 5-14 Zeichen enthalten sein dürfen, muss das Ganze so aussehen:

var pattern = /^\w{5,14}$/;
---------------I---------I

Beginn des Strings: ^
Muster: \w{5,14}
Ende des Strings: $

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#58867]
(Dieser Beitrag wurde von oesi50 am 20. Nov 2003, 11:27 geändert)

Feldprüfen bei Formular

Markus Walker
Beiträge gesamt: 494

20. Nov 2003, 12:31
Beitrag # 9 von 9
Beitrag ID: #59634
Bewertung:
(3076 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Oesi

Das ist natürlich absolut korrekt und ist mir in der Schnelle entgangen ;-)

Markus


als Antwort auf: [#58867]
X