Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

HTML Formular - Java Script funktioniert nicht

Frage Entwicklung JavaScript

Mitglied: StefanHuber

StefanHuber (Level 1) - Jetzt verbinden

08.10.2012 um 10:47 Uhr, 3340 Aufrufe, 9 Kommentare

Hallo zusammen,

ich habe auf einer Homepage ein HTML Formular für eine Anmeldung gebaut und beim "Absendenbutton" wird über OnClick mit einem Javascript überprüft, dass in jedem Feld ein Inhalt ist. Wenn das Überprüfen abgeschlossen ist, wird der Inhalt der Formulars in eine MySQL Datenbank geschrieben.

01.
 
02.
<script type="text/javascript"> 
03.
function chkFormular () { 
04.
     
05.
  if (document.Formular.Vorname.value == "") { 
06.
    alert("Bitte Ihren Vornamen eingeben!"); 
07.
    document.Formular.Vorname.focus(); 
08.
    return false;  } 
09.
     
10.
   if (document.Formular.Name.value == "") { 
11.
    alert("Bitte Ihren Namen eingeben!"); 
12.
    document.Formular.Name.focus(); 
13.
    return false;  } 
14.
     
15.
	if (document.Formular.Strasse.value == "") { 
16.
    alert("Bitte Ihren Strasse eingeben!"); 
17.
    document.Formular.Strasse.focus(); 
18.
    return false;  } 
19.
</script> 
20.
... 
21.
<form class="Formular" name="Formular" action="Anmeldung.php" method="post"> 
22.
... 
23.
<table bordercolor="#000000" width="100%"> 
24.
<tr><th class="AbsatztextKopie">Vorname:</th><th class="AbsatztextKopie"><input type="text" size="40" name="Vorname" style="width:250px" id="Vorname"></th></tr> 
25.
<tr><th class="AbsatztextKopie">Name:</th><th class="AbsatztextKopie"><input type="text" size="40" name="Nachname" style="width:250px" id="Nachname"></th></tr> 
26.
<tr><th class="AbsatztextKopie">Strasse + H.Nr.:</th><th class="AbsatztextKopie"><input type="text" size="40" name="Strasse" style="width:250px" id="Strasse"></th></tr> 
27.
</table> 
28.
<input type="submit" onClick="return chkFormular()"><input type="reset"> 
29.
 
Leider funktioniert die Überprüfung nicht mehr und ich weiß auf Anhieb auch nicht wieso?! Hat bisher eigentlich immer funktioniert...

Wo liegt der Fehler?

LG Stefan
Mitglied: nxclass
08.10.2012, aktualisiert um 12:37 Uhr
nach Zeile 18 einfügen:
01.
    return true; 
02.
}
... ich empfehle ein Blick in die Fehlerkonsole des Browsers. Es gibt da auch nette Plugins für Entwickler.

EDIT:
Ich würde das mit onsubmit="" im FORM tag machen und nicht beim Submit button.
Bitte warten ..
Mitglied: StefanHuber
08.10.2012 um 13:24 Uhr
Hallo nxclass,

danke schon mal für deinen Tipp.

Habe in Zeile 8, 13 und 18 das "return false" in "return true" geändert. Zudem das submit vom Button in den Formtag "verschoben".

Bringt leider beides nixs....
Könnte man die Überprüfung auch in die PHP-Seite umziehen

LG
Bitte warten ..
Mitglied: nxclass
08.10.2012 um 23:07 Uhr
Habe in Zeile 8, 13 und 18 das "return false" in "return true" geändert.
... das ist Falsch - wenn ein Fehler Auftritt darf das Formular nicht gesendet werden das bewirkt man mit return false

Nur wenn all deine Prüfungen erfolgreich sind (nicht fehlerhaft) wird mit return true das formular gesendet.

Ich würde das mit onsubmit="" im FORM tag machen und nicht beim Submit button.
setze das noch um - dann sollte das gehen
<code>
<form ... onsubmit="chkFormular();" ... />
...
<input type="submit" name="" value="" />
...
<code>

Könnte man die Überprüfung auch in die PHP-Seite umziehen
natürlich - auch eine Prüfung per Ajax call ist machbar - ich würde sogar soweit gehen und sagen "es MUSS eine Prüfung seitens PHP erfolgen", da du nicht sicher sein kannst wie und woher die Daten an dein PHP Script (und dann in die DB !?) gesendet werden.
Bitte warten ..
Mitglied: StefanHuber
09.10.2012 um 07:41 Uhr
aaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrhhhhhhhhhhhhhhhhhhh!!!!

Tut mir leid, dass ich überhaupt geschrieben habe, denn wer lesen kann ist klar im Vorteil!

01.
<script type="text/javascript"> 
02.
 function chkFormular () { 
03.
         if (document.Formular.Name.value == "") { 
04.
     alert("Bitte Ihren Namen eingeben!"); 
05.
     document.Formular.Name.focus(); 
06.
     return false;  } 
07.
</script> 
08.
... 
09.
Name:<input type="text" size="40" name="Nachname" style="width:250px" id="Nachname">
Ich überprüfe oben nach dem Feld "Name", das aber unten "Nachname" heißt. Somit hat er den Vornamen überprüft, wollte den Nachnamen prüfen, was er nicht konnte. Den Rest hat er dann übersprungen...

LG Stefan und danke für die Hilfe :D
Bitte warten ..
Mitglied: Guenni
12.10.2012 um 23:06 Uhr
Hi StefanHuber,

1. Interessant find' ich, dass keine Fehlermeldung kommt bzw. dass dein Code funktioniert.

Bei deiner Funktion fehlt nämlich die abschließende Klammer des Funktionsrumpfs (s.u.).

01.
<script type="text/javascript"> 
02.
 
03.
 
04.
function chkFormular () { // Klammer begin function 
05.
     
06.
Dreimal if( . . .) { Anweisungen } 
07.
 
08.
**} // Klammer end function fehlt** 
09.
 
10.
</script> 
Oder ist die beim Kopieren verlorengegangen


2. Mal so als Hinweis: Deine Prüfung, ob ein Textfeld nichts enthält (if (document.Formular.Vorname.value == "") . . . ),

mag auf den ersten Blick funktionieren, aber wenn man hier Leerzeichen eingibt, so sind auch diese gültige Eingaben und das Formular

wird gesendet. Besser wäre, man prüft, ob z.B. Buchstaben eingegeben wurden.

01.
<script type="text/javascript"> 
02.
<!-- 
03.
function check_eingabe(){ 
04.
 /* 
05.
 * Wir gehen von einer Nichteingabe aus und setzen ok auf false. 
06.
 */ 
07.
 ok=false; 
08.
 //Prüfen, ob das Textfeld **nick** Buchstaben enthält, damit schon mal 
09.
 //das Feld nicht leer bleibt. 
10.
 muster=/[A-Za-zÄÖÜäöüß]/;  
11.
 test_eingabe=muster.exec(document.formular.nick.value); 
12.
 /* 
13.
 * Wenn das Textfeld Buchstaben enthält, ok auf true setzen. 
14.
 */ 
15.
 if(test_eingabe){ok=true;} 
16.
 /* 
17.
 * Wenn das Textfeld keine Buchstaben enthält, bleibt ok false. Dann Hinweis ins Textfeld schreiben, 
18.
 * den Fokus auf das Textfeld setzen und Text markieren 
19.
 */ 
20.
 if(!ok){ 
21.
  document.formular.nick.value="Bitte korrekt ausfüllen!"; 
22.
	document.formular.nick.focus(); 
23.
	document.formular.nick.select(); 
24.
 return false; 
25.
26.
 return true; 
27.
28.
// --> 
29.
</script>
Diese Überprüfung läßt Buchstaben, Buchstaben und Zahlen zu, aber nicht Zahlen ohne Buchstaben.

Gruß
Günni
Bitte warten ..
Mitglied: StefanHuber
13.10.2012 um 09:36 Uhr
Hi Günni,

bei 1.) ist tatsächlich nur beim Rauskopieren die Klammer verloren gegangen

zu 2.): ich werde es mal versuchen und dir dann schreiben, obs geklappt hat oder nicht

Danke schon mal
LG Stefan
Bitte warten ..
Mitglied: StefanHuber
15.10.2012 um 08:07 Uhr
Hi,
habe es nun versucht, nur kann ich jetzt das Formular immer abschicken und es wird nie überprüft, ob das Feld Buchstaben oder sonst was enthält... evtl. irgendwo ein Fehler drinnen?

LG
Bitte warten ..
Mitglied: Guenni
15.10.2012 um 22:57 Uhr
Hi StefanHuber,

hast du das Script auch an dein Formular angepasst?

Ich hab' das Script auch nur kopiert und gepostet. Es überprüft das

Textfeld nick aus meinem Formular, welches du durch die Namen

deiner Textfelder ersetzen musst.

Statt . . .

01.
test_eingabe=muster.exec(document.formular.nick.value); 
. . . muß es bei dir natürlich . . .

01.
test_eingabe=muster.exec(document.formular.Vorname.value); 
. . . heißen. Und das für jedes Textfeld, das du prüfen möchtest.


... evtl. irgendwo ein Fehler drinnen?

Nein, hab's gerade noch mal probiert. Das Formular wird nicht gesendet,

wenn keine Buchstaben im Textfeld sind.

Gruß
Günni
Bitte warten ..
Mitglied: StefanHuber
24.10.2012 um 10:28 Uhr
Hi Günni,

pppppffffrrrr :D
Klar hab ich Nick durch meine Feldnamen ersetzt

Dann prüfe ich einfach nochmal, denn der Fehler muss dann bei mir liegen.

LG und danke für die Mühe
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell Datei kopieren mit ACL Script funktioniert nicht (4)

Frage von xpxy15 zum Thema Batch & Shell ...

Batch & Shell
Systemvariable funktioniert im Script nicht (4)

Frage von miczar zum Thema Batch & Shell ...

Administrator.de Feedback
gelöst Die Darstellung der HTML Benachrichtigungsmail funktioniert nicht in allen Mail-Clients (15)

Frage von admtech zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...