Javascript Problem (Formluar felder prüfen)
-
Huhu,
Ich habe gerade ein Problem mit einer simplen Prüfung einiger Felder aus einem Formular.
Das Ding ist das ich nicht dahinter komme woran das Prob liegt.
Hier mal der Code des Formulars:<form id="f_bedarfsermittlung" name"bedarfsermittlung" method="post" action="#" onsubmit="return checkform()"> <fieldset> <legend>Angaben zur Kontaktperson</legend> <table id ="t_1_bedarfsermittlung" width="800" border="0"> <tr> <td width="245">Name*:</td> <td width="615"><input type="text" class="f_1_text" tabindex="1" name="f_1_kontaktperson_name"/></td> </tr> <tr> <td>Geburtsdatum: </td> <td><input type="text" class="f_1_text" tabindex="2" name="f_1_kontaktperson_geb"/></td> </tr> <tr> <td>Straße und Hausnummer: </td> <td><input type="text" class="f_1_text" tabindex="3" name="f_1_kontaktperson_str"/></td> </tr> <tr> <td>Postleitzahl:</td> <td><input type="text" class="f_1_text" tabindex="4" name="f_1_kontaktperson_plz"/></td> </tr> <tr> <td>Ort:</td> <td><input type="text" class="f_1_text" tabindex="5" name="f_1_kontaktperson_ort"/></td> </tr> <tr> <td>Telefonnummer*:</td> <td><input type="text" class="f_1_text" tabindex="6" name="f_1_kontaktperson_tel"/></td> </tr> <tr> <td>Telefax:</td> <td><input type="text" class="f_1_text" tabindex="7" name="f_1_kontaktperson_fax" /></td> </tr> <tr> <td>E-Mail-Adresse*:</td> <td><input type="text" class="f_1_text" tabindex="8" name="f_1_kontaktperson_mail"/></td> </tr> <tr> <td>am besten erreichbar(Tageszeit):</td> <td><input type="text" class="f_1_text" tabindex="9" name="f_1_kontaktperson_erreichbar"/></td> </tr> <tr> <td>Verwandschaftsgrad zwischen Kontaktperson und zu Betreuendem:</td> <td><input type="text" class="f_1_text" tabindex="10" name="f_1_kontaktperson_verwand" /></td> </tr> </table> </fieldset> <!--####################################### Bedarfsermittlung 2 Person ####################################--> <hr /> <fieldset> <legend>Zu Betreuende Person</legend> <table id ="t_2_bedarfsermittlung" width="800" border="0"> <tr> <td width="245">Name:</td> <td width="615"><input type="text" class="f_1_text" tabindex="11" name="f_2_person_name" /></td> </tr> <tr> <td>Geburtsdatum: </td> <td><input type="text" class="f_1_text" tabindex="12" name="f_2_person_geb" /></td> </tr> <tr> <td>Straße und Hausnummer: </td> <td><input type="text" class="f_1_text" tabindex="13" name="f_2_person_str" /></td> </tr> <tr> <td>Postleitzahl:</td> <td><input type="text" class="f_1_text" tabindex="14" name="f_2_person_plz" /></td> </tr> <tr> <td>Ort:</td> <td><input type="text" class="f_1_text" tabindex="15" name="f_2_person_ort" /></td> </tr> <tr> <td>Telefonnummer:</td> <td><input type="text" class="f_1_text" tabindex="16" name="f_2_person_tel" /></td> </tr> <tr> <td>Größe:</td> <td><input type="text" class="f_1_text" tabindex="17" name="f_2_person_groesse" /></td> </tr> <tr> <td>Gewicht:</td> <td><input type="text" class="f_1_text" tabindex="18" name="f_2_person_gewicht" /></td> </tr> <tr> <td>Wohnt die zu betreuende Person alleine?</td> <td><input type="text" class="f_1_text" tabindex="19" name="f_2_person_home" /></td> </tr> </table> </fieldset> <hr /> <fieldset> <legend>Angaben zur Pflegestufe</legend> <table id ="t_2_bedarfsermittlung" width="800" border="0"> <tr> <td width="245">Pflegestufe:</td> <td width="615"><select class="f_1_text" tabindex="20" size="1" name="f_3_pflegestufe"> <option value="f_3_pflegestufe_keine">Keine</option> <option value="f_3_pflegestufe_vorhanden">Vorhanden</option> <option value="f_3_pflegestufe_beantragt">Beantragt</option></select></td> </tr> <tr> <td>Einstufung: </td> <td><input type="radio" name="f_3_pflegestufe_stufe" value="1" />1 <input type="radio" name="f_3_pflegestufe_stufe" value="2" />2 <input type="radio" name="f_3_pflegestufe_stufe" value="3" />3 <input type="radio" name="f_3_pflegestufe_stufe" value="4" />Härtefall </td> </tr> </table> </fieldset> <input type="submit" value="Absenden" /> </form>
hier der JavaScript Code dazu:
function checkform() { var strFehler=''; if (document.bedarfsermittlung.f_1_kontaktperson_name.value=="") strFehler += "- Bitte geben Sie Ihren Name ein\n\n"; if (document.bedarfsermittlung.f_1_kontaktperson_tel.value=="") strFehler += "- Bitte die Telefonnummer eingeben\n\n"; if (!validEmail(document.bedarfsermittlung.f_1_kontaktperson_mail.value)) { strFehler += "- In Ihrer E-Mail Eingabe ist ein Fehler\n"; } if (strFehler.length>0) { alert("Folgende Fehler sind aufgetreten: \n\n"+strFehler); return(false); } } function validEmail(email) { var strReg = "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$"; var regex = new RegExp(strReg); return(regex.test(email)); }
Das script wird geladen habe es mit einem alert getestet.
Irgendwo muss es probs geben mit dem ansprechen der Formular felder.
Bei den letzten Formularen hab ich es eigentlich genauso gemacht und benutze den Code eigentlich zum 3ten mal.
Die felder werden doch über das NAME Attribut angesprochen oder nicht ???dann müsste doch document.bedarfsermittlung.f_1_kontaktperson_name.value=="" die richtige reihenfolge sein
Bitte schaut euch das mal an vielleicht hab ich ja Tomaten auf den Augen!
-
was sagt firebug?
-
Ich kann Dir nur einen Tipp geben: arbeite am Besten mit IDs, sodass du mit der Funktion "getElementById(id des Elements)" ein Element ansprechen kannst. Somit hast du nicht nur dynamischere Formulare, sondern kannst sie auch besser mit CSS ansprechen.
-
Hallo,
ganz einfach
<form id="f_bedarfsermittlung" name="bedarfsermittlung" method="post" //...
man beachte das "=" zwischen "name" und "bedarfsermittlung". In deinem Code fehlt es, weswegen natürlich auch kein Formular mit dem Namen "bedarfsermittlung" bekannt ist!
VlG
-
Vielleicht noch ein zweiter Tipp:
Wenn du etwas mehr mit JS arbeiten musst, dann empfehle ich dir ein Framework zu nutzen.
Es ist schon ein unterschied zwischen
var res = bla.getElemendById("abc").value;
und (z.B. jQuery):
var res = $('#abc').val();
-
Ich danke euch wieder mal vielmals!!!
1. ich werd in Zukunft wohl eher per ID arbeiten wie mir vorgeschlagen wurde! Danke dafür!
2. der Fehler war das fehlende "=" ich könnt mich aufregen warum ich dass nicht selbst gefunden habe. Ich glaube man wird einfach bisschen Blind wenn man tagelang nur den selben Code vor Augen hat
In ein Framework werd ich mich in Zukunft einarbeiten müssen und meine wahl ist da auch auf jQuery gefallen.
Mir graut es schon davor das Formluar am ende mit PHP auszuwerten
Am Ende werden es ca 300 Elemente sein die abgefragt werden.Falls da noch jemand ein Tipp zu hat wie man das vereinfachen kann wäre ich Dankbar für!
Ich würde das jetzt einfach von Hand Coden. Wobei ich mir immer noch um die Strukturierte Ausgabe in der E-Mail Gedanken machen
Das ist mein erstes Größeres Projekt und bin mir sicher das ich noch vieles viel zu umständlich mache. Aber das ist glaub ich normal *g*Was ich nochmal loswerden muss:
Ihr seid die besten ich liebe dieses Forum und die Menschen die hier selbstlos helfen wo sie können! Hier habe ich schon soviel gelernt! Ob es im C++ Bereich oder seid neuestem auch hier im Webbereich ist! Dafür Danke ich euch!!!