# function checkForm()



## DaveThuet (1. September 2007)

*Hallo erstmals!*
Bitte seid freundlich zu mir da ich vielleicht unverständlich Schreiben werde. 

Ich habe ein Problem... (Hat das nicht jeder der sich hier Anmeldet? :suspekt

Nun zu meinem Problem...
Ich betreibe eine erfolgreiche Homepage wo User Ihre Wallpapers hochladen können, dort habe ich eine Upload-Formular eingerichtet und nun möchte ich es meiner bestehenden User leichter machen indem ich eine Dropdown Menü erstellt habe wo diese Ihren Namen direkt auswählen können. Natürlich ist das Dropdown Menü ein Pflichtfeld mit der function checkForm().
In diesem Dropdown Menü gibt es nun auch die Auswahl .:: Neuer User ::. und jetzt kommt mein Problem oder meine Unwissenheit über die Programmierung der function checkForm()....
Sollte also ein Besucher die Option im Dropdown Menü .:: Neuer User ::. ausgewählt haben so muss er dann im nächsten Formularfeld (Textfeld) eine Eingabe machen mit seinen Namen. Wie mache ich das diese Textfeld "Neuer_User" kontrolliert das es die Auswahl .:: Neuer User ::. aus dem Dropdown Menü gewählt hat und somit er verpflichtet ist eine Eingabe zu tätigen aber natürlich nicht die bestehenden User.

Na ja...
Ich sagte ja am Anfang ich hoffe das Ihr meine Beschreibung des Problems verstehen werdet!

PS: Ich habe eine Testseite zur Veranschaulichung online gestellt. LINK

Anbei noch der Problem-Code respektive der zu Programmierenden Code:

```
<script language="JavaScript1.2">
<!--
function checkForm()
{
//====== Prueft Feld EMAIL ======

if (document.mailer.Email_adresse0.value=="")
{alert ("Bitte eine Email eingeben");
document.mailer.Email_adresse0.focus();
return false
}

if(document.mailer.Email_adresse0.value.indexOf('@')==-1 ||document.mailer.Email_adresse0.value.indexOf('.')==-1)
{ 
alert ("Eine gültige Emailadresse muss ein           \n            «@» (At-Zeichen) \n                 und einen \n                «.» (Punkt) \n                 enthalten!");
document.mailer.Email_adresse0.focus();
return false
}

if (document.mailer.Bestehender_User_Name.value=="Bitte wählen")
{alert ("Bitte wählen Sie Ihren User-Name oder wählen Sie \"Neuer User\" aus.");
document.mailer.Bestehender_User_Name.focus();
return false
}

if (document.mailer.Neuer_User.value=="")
{alert ("Bitte geben Sie einen neuen Link- oder User-Name ein");
document.mailer.Neuer_User.focus();
return false
}

if (document.mailer.Upload_Regeln.value=="Nein, ich Akzeptiere nicht")
{alert ("Sie müssen die Upload-Regeln lesen und akzeptieren,\nansonsten lassen Sie Ihre Bilder bitte auf Ihrer Festplatte.\nWir danken Ihnen für Ihr Verständnis!");
document.mailer.Upload_Regeln.focus();
return false
}
}
//-->
</script>
```


----------



## Irgendjemand_1 (2. September 2007)

Sieht das nicht eher nach Javascript aus? Vielleicht falsches Forum?


----------



## DaveThuet (2. September 2007)

Irgendjemand_1 hat gesagt.:


> Sieht das nicht eher nach Javascript aus? Vielleicht falsches Forum?



Ja es stimmt das eigentliche Problem liegt im Java Script aber da ich es auf einer php Seite verwende dacht ich mir ich Poste es im php...
Kann gerne verschoben werden wenn nötig.


----------



## Irgendjemand_1 (2. September 2007)

Ich hatte mir das ganze noch nicht so genau angeschaut. Aber es scheint, als hättest du recht.
Das Javascript ist in dem Falle wohl nur zur Bequemlichkeit des Users da, der das Formular ausfüllt. Das heißt, er wird eben direkt darauf hingewiesen, dass etwas falsch ist, ohne die Seite zu reloaden. PHP könnte erst bei einem Reloed der Seite einen Fehler ausgeben. Aber da man Javascript einfach abschalten kann, ist es eben nicht dazu geeignet, um wirklich etwas zu überprüfen. Es gilt die Regel, dass eine Seite immer noch funktionieren muss, wenn Javascript abgeschaltet ist.
Also zu dem Javascript Problem kann/will ich nichts sagen, aber wenn du das hinbekommen hast, musst du das ganze nochmal für PHP machen. 1. Um den User dann wirklich hinzuzufügen (in der Datenbank abspeichern zB. Sowas kann Javascript nicht) 2. Um die Eingabe nochmal zu überprüfen, denn wie ich bereits gesagt habe, kann man Javascript einfach abschalten. 

Irgendwie hab ich das Gefühl ich drück mich etwas umständlich aus und ich hätte alles in 2 Sätze packen können, aber irgendwie kann ich nicht mehr so richtig denken


----------



## DaveThuet (2. September 2007)

Morgen!
Also, ich möchte keine reine PHP Sache daraus machen. Die neuen User gebe ich Manuell in der Datenbank ein.
Ich möchte nur mein JavaScrip Problem gelöst bekommen... 
Ich denke es sollte einfach möglich sein das wenn ein Besucher im Formular eine bestimmte Auswahl trifft _(bei mir ".:: Neuer User ::.")_ im DropDown Menü das sich ein folge Text-Pflichtfeld pflichtig wird, wo die function checkForm den Besucher darauf aufmerksamm macht das er eben dieses Text-Pflichtfeld ausgelassen hat auf Grund seiner Auswahl im DropDown Menü. 
Ich möchte nur das Lösen und wäre sehr erstaunt wenn man das nicht kann 

Zur der JavaScript deaktivierung im Browser ich denke das 90% der Surfer JavaScript aktiviert haben, ansonsten würde Ihnen das Surfen im Internet sehr schnell vergehen wenn die meisten Homepages nicht angezeigt werden oder falsch angezeigt werden. Aber das ist eine ganz andere Thematik die in diesem Post nichts verloren hat! Danke trotzdem.

Kann jetzt wirklich niemanden eine Antwort abliefern zu meinen kleinen Problem


----------



## Sven Mintel (2. September 2007)

Gebe der <option> mit dem Text *.:: Neuer User ::.* bspw. das value-Attribut "-1"

In der Funktion fragst du dann diesen Wert ab und guckst nach, ob das Eingabefeld für den Usernamen leer ist. Wenn ja, gibst du die Fehlermeldung aus und brichst ab:


```
if(
    document.mailer.Bestehender_User_Name.value==-1 
     && 
    !document.mailer.Neuer_User.value.match(/\w/)
  )
{
alert ("Bitte geben Sie einen User-Namen ein");
document.mailer.Neuer_User.focus();
return false
}
```


----------



## DaveThuet (2. September 2007)

Also, das nenne ich Hilfe...
Zu ewigen Dank verpflichtet
Funktioniert jetzt genau so wie ich es mir Vorgestellt hatte.


----------

