Formulareingaben überprüfen
Daniela
- javascript
Hallo
Ich habe ein Formular erstellt und dabei eine Kontrolle eingebaut,die kontrolliert ob etwas im Feld eingegeben wurde:
<script language="JavaScript">
<!--
function chkFormular()
{
if(document.Formular.Nachname.value == "")
{
alert("Bitte Ihren Nachnamen eingeben!");
document.Formular.Nachname.focus();
return false;
}
Wie kann ich eine Kontrolle einbauen, die kontrolliert, ob mindestens 4 Zeichen eingegeben wurden.
Ich habe bereits im Euer SelftHtml 8.0 gesucht und unter der Rubrik "Reguläre Ausdrücke" gelesen. Dabei bin ich auf den Abschnitt Length gestossen. Danach habe ich lange an meiner Kontrolle herumgebastelt (bin keine gute Programmiererin), habe aber keine Lösung gefunden.
Kann mir vielleicht jemand mein Script ausbessern, damit die Kontrolle funktioniert?
Wäre echt nett von Euch
Mfg
Daniela
Hallo Daniela.
Wie kann ich eine Kontrolle einbauen, die kontrolliert, ob mindestens 4 Zeichen eingegeben wurden.
Siehe http://de.selfhtml.org/javascript/objekte/string.htm#length
Freundschaft!
Siechfred
Hallo Siechfred
Dein Link habe ich durchgelesen.
Jedoch habe ich immer noch Schwierigkeit, dies auf meinem Script anzuwenden. Könntest du nicht bitte, mein Script so ausbessern, dass die Kontrolle funktioniert.
Auch wenn Tom und MudGuard mir empfehlen diese Kontrolle nicht einzubauen, möchte ich doch gern wissen, wie man diese Kontrolle im Script einbaut.
Mfg
Daniela
Hallo Daniela.
Jedoch habe ich immer noch Schwierigkeit, dies auf meinem Script anzuwenden. Könntest du nicht bitte, mein Script so ausbessern, dass die Kontrolle funktioniert.
Nein, aber zeig mal her, was du versucht hast und sage, welche Fehler dabei auftraten.
Freundschaft!
Siechfred
Hallo Siechfred
Folgendes habe ich probiert:
script language="JavaScript">
<!--
function chkFormular()
{
if(document.Formular.Nachname.value == "")
{
alert("Bitte Ihren Nachnamen eingeben!");
document.Formular.Nachname.focus();
return false;
}
{
if(document.Formular.Nachname.length>2 == -1)
{
alert("Bitte kontrollieren Sie Ihren Nachnamen!");
document.Formular.Nachname.focus();
return false;
}
Im ersten Teil wird kontrolliert, ob überhaupt irgendetwas eingegeben wurde.
Der erste Teil funktioniert auch.
Nur im zweiten Teil, sollte kontrolliert werden, ob mindestens 2 Zeichen
eingegeben wurden.
Dort habe ich auch probiert length<2 einzugeben und auch das == -1 wegzulassen.
Ich habe auch probiert vor "length" die Anweisung "value" einzugeben
Aber die Kontrolle funktionierte nie.
Bei dem Link den du mir angegeben hast, verstehe ich nicht ganz wie
ich das auf meinen Script übertragen soll. Denn beim angegebenen Beispiel wird ja nur eine Meldung erzeugt wieviele Zeichen eingegeben wurden und nicht ob ein Minimum eingeben wurden und daher eine Meldung aufscheinen soll.
Kannst du mir bitte weiterhelfen.
MfG
Daniela
Hallo Daniela.
if(document.Formular.Nachname.length>2 == -1)
So geht das nicht. document.Formular.Nachname erzeugt eine Referenz auf ein Formularelement, das keine Eigenschaft oder Methode "length" hat. Somit kann das nicht funktionieren. Allerdings liefert dir die value-Eigenschaft eines Formularelementes einen String:
http://de.selfhtml.org/javascript/objekte/elements.htm#value
Kombiniere dies mit length und formuliere den Vergleich richtig:
http://de.selfhtml.org/javascript/sprache/operatoren.htm#vergleich
Das ist schon alles :)
Freundschaft!
Siechfred
Hallo Siechfed
Würde das hier jetzt stimmen:
script language="JavaScript">
<!--
function chkFormular()
if(document.Formular.Nachname.value == "")
{
alert("Bitte Ihren Nachnamen eingeben!");
document.Formular.Nachname.focus();
return false;
}
if(Formular.Nachname <= 2) alert("Bitte kontrollieren Sie Ihren Nachnamen!");
document.Formular.Nachname.focus();
// -->
</script>
Mfg
Daniela
Hallo,
Würde das hier jetzt stimmen:
if(Formular.Nachname <= 2) alert("Bitte kontrollieren Sie Ihren Nachnamen!");
Nein, du brachst document.Formular.Nachname.value.length
Gruß
Alexander Brock
Hallo Alexander.
Nein, du brachst document.Formular.Nachname.value.length
Spielverderber! ;)
Freundschaft!
Siechfred
Hallo Daniela.
Würde das hier jetzt stimmen:
if(Formular.Nachname <= 2)
Jetzt ist zwar der Vergleich richtig formuliert, aber der Vergleichswert selber nicht.
Ein kleines Frage-Antwort-Spiel zur Verdeutlichung deines Denkfehlers:
F: Welches Objekt hat eine length-Eigenschaft?
A: Ein String.
F: Was liefert dir document.Formular.Nachname.value?
A: Einen String.
F: Was hat document.Formular.Nachname.value demzufolge?
A: Die Eigenschaft "length".
F: Wie erhalte ich Zugriff auf die Eigenschaft eines Objektes?
A: Objekt gefolgt von einem Punkt gefolgt von der Eigenschaft.
Das jetzt richtig kombiniert ist dein Ergebnis.
Freundschaft!
Siechfred
Hallo Siechfred
So müsste jetzt die Kontrolle stimmen:
script language="JavaScript">
<!--
function chkFormular()
if(document.Formular.Nachname.value == "")
{
alert("Bitte Ihren Nachnamen eingeben!");
document.Formular.Nachname.focus();
return false;
}
if(document.Formular.Nachname.value.length)
if(Formular.Nachname <= 2) alert("Bitte kontrollieren Sie Ihren Nachnamen!");
document.Formular.Nachname.focus();
// -->
</script>
Danke für die Hilfe und die Erklärungen.
Mar echt nett von dir
Mfg
Daniela
Hi,
Würde das hier jetzt stimmen:
if(Formular.Nachname <= 2) alert("Bitte kontrollieren Sie Ihren Nachnamen!");
document.Formular.Nachname.focus();
abgesehen von der falschen Syntax: Nein. Denn der Besucher kann kontrollieren, aber dennoch das Formular nicht mit einem korrekten Nachnamen mit zwei Buchstaben absenden.
freundliche Grüße
Ingo
Hi,
if(document.Formular.Nachname.value == "")
Wie kann ich eine Kontrolle einbauen, die kontrolliert, ob mindestens 4 Zeichen eingegeben wurden.
Das hat Siechfred ja schon geklärt.
Nur halte ich das nicht für sinnvoll. So spontan fallen mir 4 Familien aus meinem Bekanntenkreis ein, deren Nachname aus nur 3 Buchstaben besteht. Und ich kenne sogar jemanden, dessen Nachname (in lateinischer Schrift) nur aus 2 Buchstaben besteht.
cu,
Andreas
Hello,
Nur halte ich das nicht für sinnvoll. So spontan fallen mir 4 Familien aus meinem Bekanntenkreis ein, deren Nachname aus nur 3 Buchstaben besteht. Und ich kenne sogar jemanden, dessen Nachname (in lateinischer Schrift) nur aus 2 Buchstaben besteht.
Dem kann ich beipflichten. Ich kenne eine Familei "Ey" und eine "Ax". Die würden da auch durchs Raster fallen.
Außerdem würde man diejenigen, die nix eintragen wollen, damit nur ermutigen, Blödsinn einzutragen. Bei größerem Datenaufkommen würde man einen Satz, in dem Eingaben fehlen eber eher wieder finden, als einen, in dem Blödsinn steht.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom