E-Mail-Adresse aus Formular überprüfen

ich eigentlich auch nicht :)

ich versuchs mal:

also im Input-Tag sind zwei Events deklariert:
onFocus (wenn Element aktiviert wird, man also hineinklickt etc.)
onBlur (wenn Element deaktiviert wird, man also woanders hinklickt)

jeweils wird dann dem value des Textfeldes ein neuer Wert zugewiesen, mittels der Funktionen Empty und Fill

"Empty" wird aufgerufen, wenn das Textfeld aktiviert wird, innerhalb der Funktion wird überprüft, ob noch der Standardtext "deine Email" drinsteht, in diesem Fall wird das Feld geleert (return ""). Ansonsten bleibt der Inhalt bestehen (return Content).

"Fill" wiederum wird aufgerufen, wenn das Textfeld deaktiviert wird, innerhalb der Funktion wird überprüft, ob das Feld leer ist, in diesem Fall wird der Standardtext eingefügt (return "deine Email"). Ansonsten bleibt der Inhalt wieder bestehen (return Content).

PS: ich empfehle SelfHTML: alles zu HTML, JavaScript u.v.a.m., mittlerweile in der neuafgelegten Version 8.0. aber wem erzähl ich das ;)
 
ok, vielen dank , hab ich jetzt glaub soweit kapiert.


selfhtml 8.0 les ich net durch... hab nämlich 7.0 fertig. das reicht auch (nehme ich an).

hab mir eben von da auch mal so ne lösung zusammengebastelt, aber die hat nicht so recht funktioniert.
bin eben nicht so schlau wie du... ;)
 
ok jaeger, vielen dank.

nur noch ein problem: wenn ich jetzt zwanzig formular-felder hab, muss ich dann für jedes feld zwei neue funktionen definieren? das ist ziemlcih ätzend. geht das nicht anders?
 
... und gleich noch zwei weitere fragen:

1. geht das auch mit textarea? wäre echt geil.

2. bei mir hüpft der cursor, wenn ich ins feld klicke, immer vor den ersten buchstaben. find ich ziemlich inkorrekt. kann man das irgendwie abstellen?
 
ach ja... genau dieselben probleme haben sich mir auchaufgetan ... und ich hab sie gelöst :)

0.: Du kannst die Funktionen verallgemeinern, indem du den Inhalt der INPUT's als Parameter übergibst, so brauchst du insgesamt nur 2 Funktionen.
1.: Bei Textarea's ist das schwierig, da u.A. mit Zeilenumbrüchen gearbeitet wird, da hab ich nur eine Funktion zum Löschen, keine zum Füllen.
2.: Das liegt daran, dass der Text eingesetzt wird, auch wenn schon welcher drin ist, das kann man abfangen.
3.-10.: Schau doch bitte mal ab und zu in SelfHTML rein, du sollst es um Gottes willen nicht DURCHLESEN, sondern als Nachschlagewerk nutzen. Allein dadurch (und mit ein bissel Programmiererfahrung) kann man all diese Probleme lösen.

hier also die überarbeitete Version des Code's:

HTML:
Code:
<form action="tritratrallala.php" method="post" onSubmit="cleararea(this.text); empty(this.name,'dein Name')">
<textarea name="text" onFocus="cleararea(this)">
dein Text
</textarea>
<input type="text" name="name" value="dein Name" onFocus="empty(this,'dein Name')" onBlur="fill(this,'dein Name')">
...
</form>

JavaScript:
Code:
var cleared=false;
function empty(element,inhalt){
  if(element.value == inhalt) element.value= "";
}
function fill(element,inhalt){
  if(element.value == "") element.value= inhalt;
}
function cleararea(element){
  if(!cleared) element.value= "";
  cleared=true;
}

so läufts perfekt, meine ich :) viel spass damit
 
ok, vielen dank.

ich trau mich schon gar nimmer, hier was reinzuschreiben.:(

nur noch eine kleine frage: das mit dem cursor , wie kann man das denn genau verhindern? das steht leider bei selfhtml nirgendwo. :)

wäre nämlich noch schön, wenn das script so perfekt wäre.:)

greetings

SilentWarrior
 
jo hab ich. es funktioniert alles wunderbar.

wegen dem textarea-problem hab ich mal im selfhtml-forum gepostet.

jetzt eben, das mit dem cursor. weisst du wie man das "problem" beseitigt, dass der immer vor den 1. buchstaben springt?
 
also, tut mir leid, aber im vorliegenden script ist dieses Problem behoben, keine Ahnung, warum das bei dir nicht klappt, bei mir funzt alles bestens.
 
also ich muss jetzt den ursprünglichen thread nochmal aufgreifen. hab mich nach monaten wiedermal gewagt, bissle php zu machen. folgendes:

if(eregi("^[a-zA-Z0-9_-.]{3,}@[a-zA-Z0-9_-.]{3,}\.[a-zA-Z]{2,4}$",$mail))

warum geht das net? was stimmt net? ist die syntax irgendwo falsch?
danke für sicher viele schlaue ratschläge. ;)
 
Zurück