Input-Felder mit System zusammenfügen

Hallo zusammen,

ich suche eine Möglichkeit, aus den Werten von zwei Eingabefeldern einen String zu generieren. Ziel der Sache ist, eine E-Mailadresse zu bilden. Da das System der Mailadressenvergabe immer gleich ist, kann aus [email protected] die E-Mailadresse automtisch gebildet werden. Die Ausgabe der Adresse soll nach Möglichkeit in einem dritten Input-Feld erfolgen.
Es muss natürlich berücksichtigt werden, dass Umlaute bzw. „ß“ entsprechend umgewandelt werden müssen.

Ich hoffe mir kann jemand dabei helfen, da ich ein absoluter Javascript-Banause bin…

Vielen Dank im voraus,
Daniel

Hi Daniel,
ich habe dir einen Quelltext nach deinen Anforderungen geschrieben. Hier werden die Eingaben des Vor und Nachnamens überprüft. Allerdings ist keine automatische Umwandlung von Zeichen impementiert, d.h. bei ungültigen Zeichen kriegt der User eine Fehlermeldung präsentiert. Kriegt deine Zielgruppe das hin? :smile:
Anpassen musst du auf jeden Fall deine Domain in der Variable „deineDomain“, und ggf. die bei dir erlaubten Zeichen (Variable „erlaubt“).
Momentan beträgt die Mindestlänge für vor- und nachname 1 Zeichen. Kannst du aber auch ändern in der funktion test (3 Zeile).
Wie auch immer viel Spaß damit.
Quelltext:

_<!–
vname="";
nname="";
deineDomain=„bla.de

function erstellen()
{
vname=document.form1.vn.value;
nname=document.form1.nn.value;
if(!test(vname)==true)
{window.alert(„Bitte geben Sie im Feld Vorname nur Buchstaben oder Zahlen an, keine Umlaute oder Satzzeichen.“);
document.form1.ausgabe.value="";}
else
{
if(!test(nname)==true)
{window.alert(„Bitte geben Sie im Feld Nachname nur Buchstaben oder Zahlen an, keine Umlaute oder Satzzeichen.“);
document.form1.ausgabe.value="";}
else
{
document.form1.ausgabe.value=vname+"."+nname+"@"+deineDomain;
}
}

}

function test(s)
{
var erlaubt = ‚0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘;
var sLaenge = s.length;
if(sLaenge<1){return false;}
var i=0, c=0, cCnt=0, schritt=0;

while (i < sLaenge){
c=s.charAt(i);

if (!(erlaubt.indexOf©>=0 || (c==’_’ && schritt<1)))
return false;

cCnt=cCnt+1; i++;
}
return true;
}

//–>

Vorname:

Nachname:

Ausgabe:_

Hallo Netscape47Feind, (cooler Nick ;o) )

vielen Dank für deine Mühe! Leider muss ich sagen, dass deine Lösung nicht ganz meinen Anforderungen entspricht… Ich brauche z.B. die Eingabe der Namen mit Umlauten, die Nutzer sollen den Namen also schon korrekt eingeben, die Umlaute müssen nur für die Mailadresse geändert werden.
Mittlerweile bin ich mit ein bisschen Hilfe selbst zu einer Lösung gekommen. Falls es jemanden interessiert:

function changeEmail() {
var strOutputVorname = „“;
var strOutputName = „“;
var strOutputDomain = „“;

if (document.anmeldung.strRegion.value == „domain1.de“) {
strOutputDomain = „@domain1.de“; }
else {
strOutputDomain = „@domain2.net“; }

strOutputVorname = document.anmeldung.strVorname.value.toLowerCase();
strOutputVorname = strOutputVorname.replace(/ö/,„oe“);
strOutputVorname = strOutputVorname.replace(/ä/,„ae“);
strOutputVorname = strOutputVorname.replace(/ü/,„ue“);
strOutputVorname = strOutputVorname.replace(/ß/,„ss“);

strOutputName = document.anmeldung.strName.value.toLowerCase();
strOutputName = strOutputName.replace(/ö/,„oe“);
strOutputName = strOutputName.replace(/ä/,„ae“);
strOutputName = strOutputName.replace(/ü/,„ue“);
strOutputName = strOutputName.replace(/ß/,„ss“);

document.anmeldung.strEmail.value = (strOutputVorname + ‚.‘ + strOutputName + strOutputDomain);
}

Die Funktion wird bei jedem onKeyUp in den input-Feldern ausgeführt.

Viele Grüße,
Daniel