Textfelder als Pflichtfelder
Chris187
- javascript
Hi,
ich habe ein Problem: Ich habe einen Routenplaner, der soweit 100%ig funzt. habe auch schon das man mit "Enter" die einzelnen Zeilen durchspringt. Doch mein Problem besteht darin das ich gerne 2 von 3 felder als Pflichtfelder setzte. doch nicht 2 bestimmte sondern halt nur 2 von 3 (Strasse, PLZ, Ort). Mir würde auch schon reichen wenn nur Strasse und plz pflichtfelder wären, doch irgendwie schaffe ich das nicht so ganz.
kann mir jemand weiterhelfen.
Gruß Chris
Hallo Chris187.
Doch mein Problem besteht darin das ich gerne 2 von 3 felder als Pflichtfelder setzte. doch nicht 2 bestimmte sondern halt nur 2 von 3 (Strasse, PLZ, Ort). Mir würde auch schon reichen wenn nur Strasse und plz pflichtfelder wären, doch irgendwie schaffe ich das nicht so ganz.
Siehe http://de.selfhtml.org/javascript/beispiele/formulareingaben.htm. Ansonsten zeige uns bitte, was du schon versucht hast.
Freundschaft!
Siechfred
<script language="Javascript">
document.onkeypress = checkKey;
function checkKey(){
if(event.keyCode=='13'){
if(event.srcElement.name=="sstreet"){ document.routeo.szip.focus(); return false; }
if(event.srcElement.name=="szip"){ document.routeo.scity.focus(); return false; }
}
}
</script>
</head>
<body marginWidth="0" marginHeight="0">
<!-- CONTENT:START -->
<div class="blockContent">
<!-- web:group:start name="Hauptgruppe" id="maingroup" -->
<!-- web:item:start name="Ueberschrift_1" -->
<div class="elementHeadline">
<h1>
<!-- web:text:start editor="box" rows="1" -->Anfahrt<!-- web:text:stop -->
</h1>
</div>
<!-- web:item:stop -->
<!-- web:item:start name="Text" -->
<div class="elementStandard">
<div class="text">
<!-- web:text:start -->
<P>Mit der Hilfe von <u>www.map24.com</u> kommen Sie auf dem schnellsten Wege
zu unserem Unternehmen. Einfach ausfüllen und zur Berechnung abschicken.</P>
<!-- web:text:stop -->
<p> </p>
<FORM id=routeo name=routeo action=http://link2.map24.com/ method=get target=_blank>
<TABLE cellSpacing=3 cellPadding=0 width=240 border=0>
<TBODY>
<TR>
<TD>Strasse:</TD>
<TD><INPUT onfocus="if (this.value == this.defaultValue) this.value = '';" onblur="if(this.value == '') this.value = 'Bitte eingeben';" maxLength=50 size=19 value="Bitte eingeben" name=sstreet> </TD></TR>
<TR>
<TD>Plz:</TD>
<TD><INPUT onfocus="if (this.value == this.defaultValue) this.value = '';" onblur="if(this.value == '') this.value = 'Bitte eingeben';" maxLength=5 size=19 value="Bitte eingeben" name=szip></TD></TR>
<TR>
<TD>Stadt:</TD>
<TD><INPUT onfocus="if (this.value == this.defaultValue) this.value = '';" onblur="if(this.value == '') this.value = 'Bitte eingeben';" maxLength=50 size=19 value="Bitte eingeben" name=scity></TD></TR>
<TR>
<TD> </TD>
<TD><input type=submit value="Route suchen" name=Submit></TD>
..........
glaube soweit reichts. nur wie kann ich mein oben beschriebenes problem lösen??
Gruß Chris
Hi,
<script language="Javascript">
ERROR: Required attribute "type" missing.
document.onkeypress = checkKey;
Was ist checkKey? Wo hast Du es wie deklariert und initialisiert?
function checkKey(){
Warum überschreibst Du hier checkKey mit einer Funktion?
<body marginWidth="0" marginHeight="0">
Bitte CSS benutzen.
<div class="elementHeadline">
<h1>[...]</h1>
</div>
Hast Du einen <div>-o-Manie? Die Menge der <div>s und die Menge der verwendeten Klassen lässt darauf schließen, dass Du sie quasi alle eigentlich ersatzlos streichen möchtest.
<p> </p>
Was zur Hölle ist _das_?
<FORM id=routeo name=routeo action=http://link2.map24.com/ method=get target=_blank>
Dieser Code sieht so aus:
<FORM id="routeo" name="routeo" action="http:"></form>link2.map24.com/ method=get target=_blank>
Sinn ergibt er nicht. Bitte benutze Anführungszeichen.
<TABLE cellSpacing=3 cellPadding=0 width=240 border=0>
Bitte benutze CSS.
<TD>Strasse:</TD>
Öh? Das sind keine tabellarischen Daten. Warum nimmst Du eine Tabelle?
Cheatah
hey cheatah,
die von dir angesprochenen fehler sind keine. Die Divs kommen alle von den Stylesheets genauso wie andere sachen, die für dich jetzt als fehler aussehen. die tabelle habe ich angeordnet und später die daten aufzubereiten und zu ändern. aber meine frage hast du nicht wirklich beantwortet. wäre dir dankbar wenn du dies noch machen könntest.
danke
gruß Chris
Hi,
die von dir angesprochenen fehler sind keine.
doch, sind sie. Einige davon mögen für Dein aktuelles Problem verantwortlich sein, andere sind es sicher nicht. Dennoch sind es Fehler.
aber meine frage hast du nicht wirklich beantwortet.
Doch, habe ich. Lies mein Posting noch mal.
Cheatah
<script language="Javascript">
hier fehlt das type Attribut, language ist überflüssig.
document.onkeypress = checkKey;
function checkKey(){
if(event.keyCode=='13'){
if(event.srcElement.name=="sstreet"){ document.routeo.szip.focus(); return false; }
if(event.srcElement.name=="szip"){ document.routeo.scity.focus(); return false; }}
}
Das geht einfacher, aber was mich daran stört ist das das Skript eine Eigenschaft die ich ausnamhsweise am IE mag stört. Jeder der mit dem IE im Internet surft wird feststellen, dass die Return Taste ein Formular abschickt und nach kurzer Zeit dieses "Feature" zu nutzen Wissen. Wenn es denn plötzlich nicht mehr funktioniert würde ich mich zumindest ärgern oder wundern.
Wie du den Eingabewert eines Feldes überprüfst steht in selfhtml: http://de.selfhtml.org/javascript/objekte/elements.htm#value
</script>
</head>
<body marginWidth="0" marginHeight="0">
marginwidth/height waren nie gültige HTML Attribute
http://www.edition-w3.de/TR/1999/REC-html401-19991224/struct/global.html#h-7.5.1
http://www.w3.org/TR/REC-html32#body
Mit CSS läßt sich das wesentlich eleganter lösen.
<!-- web:item:start name="Ueberschrift_1" -->
<div class="elementHeadline">
<h1>
<!-- web:text:start editor="box" rows="1" -->Anfahrt<!-- web:text:stop -->
</h1>
</div>
und hier kann mna cheatah nur recht geben, das ist eine divsuppe. Ein völlig sinnfreise DIV.
<!-- web:item:stop -->
<!-- web:item:start name="Text" -->
<div class="elementStandard">
<div class="text">
Das ist unglaublich, was für ein Programm macht sowas?
<!-- web:text:start -->
<P>Mit der Hilfe von <u>www.map24.com</u> kommen Sie auf dem schnellsten Wege
zu unserem Unternehmen. Einfach ausfüllen und zur Berechnung abschicken.</P>
<!-- web:text:stop -->
<p> </p>
du kannst mit CSS ganz einfach Abstände erzegen.
<FORM id=routeo name=routeo action=http://link2.map24.com/ method=get target=_blank>
Attribute ausser Zahlen müssen in Anführungszeichen.
Struppi.
Hallo Chris187.
<INPUT onfocus="if (this.value == this.defaultValue) this.value = '';" onblur="if(this.value == '') this.value = 'Bitte eingeben';" maxLength=50 size=19 value="Bitte eingeben" name=sstreet>
Sieht zwar auf den ersten Blick etwas chaotisch aus, funktioniert aber :)
Allerdings stellst du dir hier selber ein Bein. Wenn das Eingabefeld den Focus verliert, füllst du es automatisch mit dem defaultValue, was ziemlich unsinnig ist, da so das Feld _immer_ einen Inhalt haben wird, weshalb eine Pflichtfeldprüfung immer positiv ausfallen wird. Besser wäre, onBlur eine JS-Funktion aufzurufen, die für den Fall, dass nichts im Eingabefeld steht, eine Meldung ausgibt und den Focus in das geprüfte Eingabefeld setzt.
Freundschaft!
Siechfred