Tja,
Da liegt wohl noch mehr im Argen. Zum Beispiel in CheckD00():
for (i = 0; i < document.Box00.D00.length; ++i)
Warum ++i und nicht i++? Mit ++i erhöhst du i, bevor es abgefragt wird. Das ist wohl nicht der Sinn.
Die ganze for-Schleife kann ersetzt werden durch die Zeile:
document.Formular.artikel.value = document.Box00.D00.options[document.Box00.D00.options.selectedIndex].value;
Außerdem:
Die Funktion chkFormular() sollte am Schluss true zurückgeben. Wie es aussieht, gibt sie gar nichts zurück oder aber false, falls ein Eingabefeld nicht richtig ausgefüllt ist. Schreib also in chkFormular() ganz am Ende:
return true;
und anschließend noch, nur zum Testen:
alert(document.Formular.artikel.value);
Das sollte dir dann vor dem Abschicken eine Zahl von 0 bis max. Artikelzahl anzeigen, je nachdem welcher ausgewählt ist.
In de E-Mail sind alle Adressdaten drin, nur den Wert des Rollfeldes will er einfach nicht in der Mail anzeigen.
Aha, die Daten werden also dann von http://www.beispiel.com/cgi-bin/Beispiel.pl als Mail verschickt.
Wird denn in diesem Beispiel.pl auf dem Server dein neues Formularfeld "artikel" überhaupt abgefragt und in die Mail gepackt? Es scheint ja ein Perl-Programm zu sein. Schon mal von Perl gehört und mal reingeschaut, was mit den Formulardaten dort passiert?
Gruß, Don P