Was mache ich da falsch?
Lilly
- javascript
0 Ole0 nilsausworms0 Lilly0 nilsausworms0 Ole
0 Maxx
Hallo,
ich will gerade ein paar Felder in einem Formular prüfen lassen, ob da was drin steht oder nicht. Das mache ich wie folgt:
</table>
<script type="text/javaScript">
function CheckSubmit(form)
{
if (!form.alter.value) {
alert("Du musst dein Alter angeben!");
form.alter.focus();
return false;
}
if (!form.geschlecht.value) {
alert("Du musst dein Geschlecht angeben!");
form.geschlecht.focus();
return false;
}
if (!form.suche.value) {
alert("Du musst angeben was du suchen willst!");
form.suche.focus();
return false;
}
if (!form.text.value) {
alert("Du musst einen Text angeben!");
form.text.focus();
return false;
}
return true;
}
</script>
So nun kommt aber mein Problem. Wenn ich die Seite aufrufe und dann einfach auf abschicken klicke, dann kommt dass ich doch bitte das Alter angeben soll. Das heißt, dass es da ging die abfrage. Dann gebe ich nun das Alter ein und sage dann einfügen dann kommt die Meldung, bitte gebe dein Geschlecht ein. Dann drücke ich bei dem alert auf OK und was passiert, er läd die Seite neu und alles ist wieder weg. Was mache ich da nur falsch. warum ging es denn beim ersten und dann beim zweiten nicht mehr?
Gruß Lilly
hi
function CheckSubmit(form)
was mir aufgefallen ist, ist dass du deinen Variablenamen recht unglücklich gewählt hast.
so long
Ole
(8-)>
Hallo,
was mir aufgefallen ist, ist dass du deinen Variablenamen recht unglücklich gewählt hast.
was meinst du denn damit? Bei dem ersten ging es doch auch nur dann bei den weiteren eben nicht mehr :-(
Gruß Lilly
hi
was meinst du denn damit? Bei dem ersten ging es doch auch nur dann bei den weiteren eben nicht mehr :-(
ich meine das du eine variable mit dem namen "form" erzeugst. das sit jetzt nciht auf den fehler bezogen, sondern mir nur aufgefallen.
so long
ole
(8-)>
Hallo,
ich meine das du eine variable mit dem namen "form" erzeugst. das sit jetzt nciht auf den fehler bezogen, sondern mir nur aufgefallen.
achso :-)
Gruß Lilly
function CheckSubmit(form)
was mir aufgefallen ist, ist dass du deinen Variablenamen recht unglücklich gewählt hast.
wieso?
Struppi.
Hallo Lilly.
Woran das liegt weiss ich nicht, dein script scheint jedenfalls ok zu sein. Aber ne andere Idee:
Wenn was nicht ausgefüllt ist, lade die Seite doch einfach nochmal mit roten Markierungen an den leeren Feldern und mit der Bitte, sie auch auszufüllen.
Kommt besser und übersichtlicher als das ewige bestätigen mit "ok" bei den Alerts :)
Hallo,
Wenn was nicht ausgefüllt ist, lade die Seite doch einfach nochmal mit roten Markierungen an den leeren Feldern und mit der Bitte, sie auch auszufüllen.
Hmm das habe ich mir auch schon überelgt, das wurde bestimmt toll aussehen, aber nur wie muss ich das denn machen, dass das dann Rot wird oder eben eine Farbe die ich mir aussuche?
Kannst du mir da mal eben kurz helfen?
Gruß Lilly
Hallo Lilly,
Du schreibst in den Quellcode der Seite für jedes Formularelement ein kleines Div-Element. In jedes div setzt du ein rotes Ausrufezeichen, oder so etwas.
Dann positionierst du die divs absolut bei -500px oben und -500px links (man kann sie also nicht sehen).
(
z.b. so:
<div id="Ausrufezeichennummer1" style="width:50px; height:50px; position:absolute; top:-500px; left:-500px; background:url(mein/verzeichnis/grossesrotesausrufezeichen.jpg)"></div>
)
Dann, wenn die Formularfelder überprüft und leere Felder gefunden worden sind, verschiebst du die divs per javascript an die entsprechenden Formularfelder vorne dran. Das ist nicht allzuschwer, aber ein bischen Fuzzelig.
(
ungefähr so:
document.getElementById("Ausrufezeichennummer1").style.top="375px";
document.getElementById("Ausrufezeichennummer1").style.left="50px";
)
oh je, ich hoffe jetzt hab ich dich nicht noch mehr verwirrt, als du vorher schon warst. Jedenfalls, wenn dus hinkriegst hast du bestimmt was gelernt.. :)
Tip: guck dir mal "www.agoentgen.de" an, auf selfhtml steht natürlich auch alles drin :)
Gruss, Nils
hi
Dann positionierst du die divs absolut bei -500px oben und -500px links (man kann sie also nicht sehen).
nicht anzeigen via "display: none" halte ich da für sinnvoller, da es sonst u.U. zu unschönen Scrollbalken kommen kann.
so long
ole
(8-)>
»» nicht anzeigen via "display: none" halte ich da für sinnvoller, da es sonst u.U. zu unschönen Scrollbalken kommen kann.
stimmt, könnte die elegantere Methode sein.
Gruss, Nils
Hallo Lilly,
... er läd die Seite neu und alles ist wieder weg.
wie rufst du deine Funktion auf?
So: <form action="..." onSubmit="return CheckSubmit(form);">
das return mit "false" (aus der Prüfung) im onSubmit verhindert, dass das Formular abgeschickt wird. Es sollte also auch nicht neu geladen werden, und die Eingaben bleiben erhalten.
Grüße,
Jochen
Hallo Jochen,
wie rufst du deine Funktion auf?
so rufe ich das auf:
<form name="form1" method="post" action="save.php" onsubmit="return CheckSubmit(this)">
Gruß Lilly
so rufe ich das auf:
<form name="form1" method="post" action="save.php" onsubmit="return CheckSubmit(this)">
Dann sollte es auch funktionieren. Hast du vielleicht einen JS Fehler?
Struppi.