Allgemeinen Formular checker
Martin Moeller
- javascript
Hallo
ich möchte einen Formularchecker haben der alle Elemente in einem
<form> Tag überprüft ob etwas darinsteht ohne jedes einzele Element
der form abzufragen.
Also nicht:
if
(document.formular.name.value=="")
alert("Bitte überprüfe deinen Namen!");
}
if(document.formular.email.value=="")
alert("Bitte überprüfe deinen Email!");
}
....
sondern:
if(document.formular.Alle Elemente der <form>.value=="")
alert("Eingaben sind nicht vollständig");
}
Der Formularchecker soll nämlich in hunderte von bereits erstellten Formularen eingefügt werden und da will ich nicht jedes einzelne element eingeben, würde zu lange dauern.
Hi,
ich möchte [...]
Der Formularchecker soll [...]
gut. Was ist nun Dein Problem?
Cheatah
Ich will einen allgemeinen formularchecker, den ich in jede html seite mit einem <form> tag einbinden kann, ohne jedes einzelene element der <form> anzugeben.
er soll also alle Felder überprüfen ob etwas drinsteht oder nicht
(text, textarea, checkbox....)
Hi,
Ich will [...]
ich habe nicht gefragt, was Du willst, sondern was Dein Problem ist.
Cheatah
hi,
willst du dein problem diskutieren - oder lieber frage-antwort-pingpong spielen?
gruss,
wahsaga
<script language="JavaScript" type="text/javascript">
function checkForm(form) {
for(element in form) {
element = document.getElementsByName(element)[0];
if(element.value.length == 0) {
alert("Eingaben unvollständig!" + element.name);
return false
}
}
return true;
}
</script>
Gruß
Phil
<script language="JavaScript" type="text/javascript">
function checkForm(form) {
for(element in form) {
element = document.getElementsByName(element)[0];
if(element.value.length == 0) {
alert("Eingaben unvollständig!" + element.name);
return false
}
}
return true;
}</script>
Gruß
Phil
kannst mir vielleicht sagen was ich hier ändern sollte damits geht
<script language="JavaScript" type="text/javascript">
function checkForm(formular)
{
for(element in form)
{
element = document.getElementsByName(element)[0];
if(element.value.length == 0)
{
alert("Eingaben unvollständig!" + element.name);
return false
}
}
return true;
}
</script>
<form method="post" action="mailto:Heyer@web.de" name="formular">
<input type="text" name="name" ><br /><br />
<input type="submit" name="senden" value="senden" onclick="checkForm()">
</form>
kannst mir vielleicht sagen was ich hier ändern sollte damits geht
<script language="JavaScript" type="text/javascript">
function checkForm(formular)
{
for(element in form)
{
element = document.getElementsByName(element)[0];
if(element.value.length == 0)
{
alert("Eingaben unvollständig!");
return false
}
}
return true;
}</script>
<form method="post" onSubmit="return checkForm(this);" action="mailto:Heyer@web.de" name="formular">
<input type="text" name="name" ><br /><br />
<input type="submit" name="senden" value="senden"></form>
Gruß
Phil
Hast du das ausprobiert.den bei mir sagt er das " 'form' in zeile
for(element in form)
undefiniert sei.
Gruß
Phil
function checkForm(form) {
for(element in form) {
element = document.getElementsByName(element)[0];
if(element.value.length == 0) {
alert("Eingaben unvollständig!" + element.name);
return false
}
}
return true;
}
Neben dem, dass es nicht funktioniert, würde es schön alle Formularelemente (buttons, checkboxen, Listen usw) prüfen, auch wenn diese keinen Value haben können.
Struppi.
Hallo Struppi,
er wollte einen allgemeinen checker, der ALLE formularfelder überprüft.
Natürlich hätte ich auch ein if(feld.type=='text') oder was auch imemr einbauen können, aber wieso sollte ich? wenn das script einen button überprüft, passiert ja nix ;)
Und nebenbei bemerkt, es funktioniert... ;)
Gruß
Phil
er wollte einen allgemeinen checker, der ALLE formularfelder überprüft.
Natürlich hätte ich auch ein if(feld.type=='text') oder was auch imemr einbauen können, aber wieso sollte ich? wenn das script einen button überprüft, passiert ja nix ;)
genau, das Formular wird nicht abgeschickt, wenn das Formular z.b. eine optionsliste enthält (<select name="..."> <option> </select> hat keinen Wert) selbst wenn in der Liste was ausgewählt wird (zumindest in Browsern, im IE nicht).
Und nebenbei bemerkt, es funktioniert... ;)
Das ist für mich nicht funktionieren.
Darüber hinaus frag ich mich ob das:
for(element in form) {
element = document.getElementsByName(element)[0];
funktioniert?
Ich hab hier gerade keinen Browser, der document.getElementsByName kann, aber einerseits gehst du mit for(element in form) bereits alle Elemenet durch und anderseits was soll dann document.getElementsByName(element)[0]; liefern?
element ist doch ein Formularelement und nicht der Name des Elementes. Also selbst wenn es funktioniert (dass bedeutet wahrscheinlich, das in getElements.. element.toString() aufgerufen wird) wäre es ziemlich überflüssig, da du auf element ja schon zugreifen kannst.
Struppi.
genau, das Formular wird nicht abgeschickt, wenn das Formular z.b. eine optionsliste enthält (<select name="..."> <option> </select> hat keinen Wert) selbst wenn in der Liste was ausgewählt wird (zumindest in Browsern, im IE nicht).
Falsch, getestet in Firefox ;-)
Darüber hinaus frag ich mich ob das:
for(element in form) {
element = document.getElementsByName(element)[0];
funktioniert?
an dieser stelle geb ich dir recht, die zeile is überflüssig...
ertappt :P
Gruß
Phil
Dann verusch mal dieses Formular abzuschicken:
http://home.arcor.de/struebig/js/test/test_form.html
ich bekomm (IE 4) eine Latte von nicht ausgefüllten "Feldern". Deine Methode funktioniert nicht!
Struppi.
Richtig, im ie funktioniert sie nicht, aber ich dachte, das ganze ist für einen browser, nich für nen bug ;-)
hey, nciht alles so ernst nehmen... ;-)
Gruß
Phil
Hallo Phil,
bevor Du beginnst, diversen Quellcode zu schreiben, solltest Du Dir ein paar Dinge überlegen:
1.
Wie kann man alle unterschiedlichen Elemente eines Formulars ansprechen?
2.
Können die unterschiedlichen Elemente alle gleich überprüft werden?
3.
Gibt es optionale Elemente, die ein User nicht ausfüllen muss?
4.
Kann es sein, dass gleiche Elementtypen unterschiedlich überprüft werden müssen?
5.
Lohnt die Entwicklung eines "allgemein gültigen" Formularcheckers bei der Anzahl der Elemente?
Universeller Tip: Nimm Dir mal ein Blatt Papier und skizziere erstmal alles, was Du zu benötigen glaubst. Anschliessend versuche, Schritt für Schritt Dein Konzept umzusetzen...
;o) bluntburn
Hallo Phil,
Hallo bluntburn
bevor Du beginnst, diversen Quellcode zu schreiben, solltest Du Dir ein paar Dinge überlegen:
Ok, bin ganz Ohr...
Wie kann man alle unterschiedlichen Elemente eines Formulars ansprechen?
Alle unterschiedlich.
Können die unterschiedlichen Elemente alle gleich überprüft werden?
Er wollte ein allgemeines script, dass ALLE elemente auf einen WERT überprüft (value)
Gibt es optionale Elemente, die ein User nicht ausfüllen muss?
Davon stand in der Frage nichts, oder hast du da genauere informationen?
Kann es sein, dass gleiche Elementtypen unterschiedlich überprüft werden müssen?
Stand auch nichts von drin.
Lohnt die Entwicklung eines "allgemein gültigen" Formularcheckers bei der Anzahl der Elemente?
Ich weiß nicht, tut es? es sind nicht meine formulare, ich habe lediglich eine frage beantwortet.. ;-)
Universeller Tip: Nimm Dir mal ein Blatt Papier und skizziere erstmal alles, was Du zu benötigen glaubst. Anschliessend versuche, Schritt für Schritt Dein Konzept umzusetzen...
Wow, eine geniale Idee, stift und papier!! wieso bin ich da nicht selber drauf gekommen...
was hast du gegen die paar zeilen quelltext? sie funktionieren *gg*
Gruß
Phil
Hi Phil,
natürlich habe ich nicht Dich gemeint, sondern Martin...
;o) bluntburn
PS: Papier und Stift sind immer eine geniale Idee.
Hi,
Was Papier und Bleistift angeht, die gehören zum Standard werkzeug eines jeden webseitenbastlers ;)
aber wenn du evtl. ein grafiktablett zur verfügung hast, guck dir mal denim an:
http://guir.berkeley.edu/projects/denim/
Gruß
Phil