Archivlink: javarea.de Forum > JavaScript > Hilfe zu verschiedene Formularfeldarten mit Javascript überprüfen
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Hilfe zu verschiedene Formularfeldarten mit Javascript überprüfen

Pages: « Erste ... « vorherige ... 1 [2]

geschrieben von Micha am 20.12.2009 - 20:31
Hallo,

mit welchem Editor arbeitest Du? Es ist soweit alles korrekt bis auf zwei kleine Sachen. Zwei Klammern ( schließende } ) sind an der falschen Stelle. Wenn Du logisch einrückst, dann sollte Dir ein Editor mit Syntaxhervorhebung zeigen, was zusammengehört und wo zu einer sich öffnenden Klammer das Pendant ist. Es sind zwei Klammern falsch gesetzt. Versuch mal, ob Du sie findest.
Bei Fehlern im JavaScript hilft mir immer die Fehlerkonsole (unter Extras) im Firefox oder Opera weiter...

Der andere Fehler ist Deine Fehlermeldung
HTML-Quelltext
1: 
window.alert("Folgende Felder haben Sie nicht ausgefüllt: str");


Hier willst Du nicht am Ende str haben, sondern den Inhalt von str Dir anzeigen lassen:
HTML-Quelltext
1: 
window.alert("Folgende Felder haben Sie nicht ausgefüllt: " + str);


Gruß Micha

geschrieben von nicole.g am 20.12.2009 - 21:05
Hey Micha, also ich hab jetzt die beiden letzten klammer ganz nach oben genommen,
aber es funktioniert immer noch nicht.

Ich habs jetzt im dreamweaver aufgemacht und im firefox angeschaut.
Der Dreamweaver genau wie die Fehlerkonsole meldet mir in Zeile 77meldet mir, da wo die gesammelte fehlermeldung ausgegeben werden soll im false-fall einen fehler, also bei return false in der if(str!=""){-Funktion.

Wo steckt denn da der Fehler und habe ich die richtigen beiden schließenden Klammern verschoben?

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 

<?
<script type="text/javascript">

        
/* <![CDATA[ */

          
function checkInput(f) {
        
f.onsubmit = function(e) {
            var 
isComplete false;
            var 
str ="";
            
                                  }
                                  }

            
// Geschlecht
            
for (var i=0i<this.elements['geschlecht'].lengthi++) {
                if (
this.elements['geschlecht'][i].checked) {
                    
isComplete true;
                    break;
                                                            }
                                                                      }

            if (!
isComplete) {
            
str += "geschlecht\n"// hänge das fehlerhafte Feld Geschlecht an den bestehenden String, n is ein Zeilenumbruch
                             
}

            
// Alter
            
if (this.elements['alter'].value == "" || isNaN(parseInt(this.elements['alter'].value))) {
            
str += "alter\n"// hänge das fehlerhafte Feld Alter an den bestehenden String, n is ein Zeilenumbruch
                                                                                                      
}

            
// Note
            
for (var i=0i<this.elements['note'].lengthi++) {
                if (
this.elements['note'][i].checked) {
                    
isComplete true;
                    break;
                                                      }
                                                               }

            if (!
isComplete) {
            
str += "note\n"// hänge das fehlerhafte Feld Note an den bestehenden String, n is ein Zeilenumbruch
                             
}

            
// Nachricht
            
if (this.elements['nachricht'].value == "") {
                        
str += "nachricht\n"// hänge das fehlerhafte Feld Nachricht an den bestehenden String, n is ein Zeilenumbruch
                                                        
}
                                                                     

            
// Mail
            
if (this.elements['absender'].value == "" || this.elements['absender'].value.indexOf('@') < 0) {
            
str += "absender\n"// hänge das fehlerhafte Feld Absender an den bestehenden String, n is ein Zeilenumbruch
                                                                                                            
}


             if(
str!= "") {
                         
window.alert("Folgende Felder haben Sie nicht ausgefüllt: " str);
                         return 
false;  
                          } 
                         else {
                         return 
true; (HIER MELDET ER EINEN SYNTAXFEHLER)
                               }



    
window.onload = function(e) {
        var 
form document.forms[0];
        if (
form)
            
checkInput(form);
                                 }

        
/* ]]> */
        
        
</script>
?>


geschrieben von nicole.g am 20.12.2009 - 21:07
also konkret sagt mir der firefox "return not in function" (ist hier die Zeile 59)


geschrieben von Micha am 21.12.2009 - 07:03
Hallo,

das es Fehler gibt, hatte ich Dir ja gesagt. Auch die Script-Konsole im FF meldet Dir Unstimmigkeiten. Leider kann diese nicht erkennen, was Deinen Fehler ausgelöst hat, da es auch Verschachtelungen nicht prüfen kann. Aus diesem Grund habe ich Dir gesagt, was alles falsch ist - behebe es. Du sollst dabei nicht die Klammern irgendwo hinsetzen sondern an den Stellen, wo sie hingehören!

Gruß Micha

geschrieben von nicole.g am 21.12.2009 - 07:23
Guten Morgen Micha!

So jetzt zeigt mir sowohl die Fehlerkonsole im FF, als auch der IE und der Dreamweaver keine Fehler mehr an,
aber es funktioniert immer noch nicht, d.h. auch wenn ich mehrere Felder leer lasse, verschickt er mir das Formular.

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 

<?
<script type="text/javascript">

        
/* <![CDATA[ */

          
function checkInput(f) {
        
f.onsubmit = function(e) {
            var 
isComplete false;
            var 
str ="";
            
            
// Geschlecht
            
for (var i=0i<this.elements['geschlecht'].lengthi++) {
                if (
this.elements['geschlecht'][i].checked) {
                    
isComplete true;
                    break;
                                                            }
                                                                      }

            if (!
isComplete) {
            
str += "geschlecht\n"// hänge das fehlerhafte Feld Geschlecht an den bestehenden String, n is ein Zeilenumbruch
                             
}

            
// Alter
            
if (this.elements['alter'].value == "" || isNaN(parseInt(this.elements['alter'].value))) {
            
str += "alter\n"// hänge das fehlerhafte Feld Alter an den bestehenden String, n is ein Zeilenumbruch
                                                                                                      
}

            
// Note
            
for (var i=0i<this.elements['note'].lengthi++) {
                if (
this.elements['note'][i].checked) {
                    
isComplete true;
                    break;
                                                      }
                                                               }

            if (!
isComplete) {
            
str += "note\n"// hänge das fehlerhafte Feld Note an den bestehenden String, n is ein Zeilenumbruch
                             
}

            
// Nachricht
            
if (this.elements['nachricht'].value == "") {
                        
str += "nachricht\n"// hänge das fehlerhafte Feld Nachricht an den bestehenden String, n is ein Zeilenumbruch
                                                        
}
                                                                     

            
// Mail
            
if (this.elements['absender'].value == "" || this.elements['absender'].value.indexOf('@') < 0) {
            
str += "absender\n"// hänge das fehlerhafte Feld Absender an den bestehenden String, n is ein Zeilenumbruch
                                                                                                            
}


             if(
str!= "") {
                         
window.alert("Folgende Felder haben Sie nicht ausgefüllt: " str);
                         return 
false;  
                          } 
                         else {
                         return 
true;
                               }



    
window.onload = function(e) {
        var 
form document.forms[0];
        if (
form)
            
checkInput(form);
                                 }
}
                                  }
        
/* ]]> */
        
        
</script>
?>


geschrieben von Micha am 21.12.2009 - 07:40
Hallo,

sie zeigen Dir nur Syntaxfehler an. Ob Dein Script wie gewünscht geht oder nicht, können sie natürlich nicht ermitteln.

Nochmal: Räume Deinen Code auf - schau Dir mein aller erstes Beispiel an um zu sehen, wie man Klammern logisch setzt. Es liegt einzig und allein an der korrekten Setzung der Klammern!

Achja, und verzichte auf Dreamweaver und Konsorten.

Micha


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.