Formularbenennung und W3C
Thorsten
- javascript
Hallo alle zusammen,
ich habe da mal eine Frage, auf die ich keine Antwort finde. Ich habe unten ein Script gepostet, zu dem ich leider keine Lösung finde, damit es bei W3C anerkannt wird. Und zwar geht es um die Benennung eines Formulares mit dem Tag name="...", um eine Abfrage, die im Head der Datei angegeben ist, durchzuführen. Nach W3C darf ich aber Name im Zusammenhang mit Form nicht benutzen, mir fällt aber keine andere Lösung ein...
Danke und Gruß
Thorsten
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<SCRIPT type="text/javascript">
<!--
function popup1(page) {
OpenWin = this.open(page, "consoleopen1", "toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,width=375,height=500");
}
// -->
<!--
function chkFormular()
{
if(document.Formular.Vorname.value == "") {
alert("Bitte Ihren Vornamen eingeben!");
document.Formular.Vorname.focus();
return false;
}
if(document.Formular.Nachname.value == "") {
alert("Bitte Ihren Nachnamen eingeben!");
document.Formular.Nachname.focus();
return false;
}
if(document.Formular.Strasse.value == "") {
alert("Bitte Ihre Strasse eingeben!");
document.Formular.Strasse.focus();
return false;
}
if(document.Formular.PLZ.value == "") {
alert("Bitte Ihre Postleitzahl eingeben!");
document.Formular.PLZ.focus();
return false;
}
if(document.Formular.Ort.value == "") {
alert("Bitte Ihren Wohnort eingeben!");
document.Formular.Ort.focus();
return false;
}
if(document.Formular.EMail.value == "") {
alert("Bitte Ihre E-Mail-Adresse eingeben!");
document.Formular.EMail.focus();
return false;
}
if(document.Formular.EMail.value.indexOf('@') == -1) {
alert("Dies ist Keine E-Mail-Adresse!");
document.Formular.EMail.focus();
return false;
}
if(document.Formular.AGB.value == "Nein") {
alert("Bitte die AGB´s anerkennen!");
document.Formular.EMail.focus();
return false;
}
}
//-->
</SCRIPT>
<LINK href="bilder/csstyle.css" rel="stylesheet" type="text/css">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="no-cache">
<META HTTP-EQUIV="PRAGMA" CONTENT="no-cache">
<TITLE>Shop</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff" >
<P>
<BR>
<IMG src="titel_shop.gif"; alt="Shop"hspace="0" width="64" height="28">
<HR>
<FORM name="Formular" action="senden1.php" method="post" onSubmit="return chkFormular ()">
ich habe da mal eine Frage, auf die ich keine Antwort finde. Ich habe unten ein Script gepostet, zu dem ich leider keine Lösung finde, damit es bei W3C anerkannt wird. Und zwar geht es um die Benennung eines Formulares mit dem Tag name="...", um eine Abfrage, die im Head der Datei angegeben ist, durchzuführen. Nach W3C darf ich aber Name im Zusammenhang mit Form nicht benutzen, mir fällt aber keine andere Lösung ein...
Seit wann ist das so?
In HTML 4.01 ist es auf jeden Fall erlaubt
http://www.w3.org/TR/html4/interact/forms.html#h-17.3
Struppi.
Hi,
Seit wann ist das so?
In HTML 4.01 ist es auf jeden Fall erlaubt
Laut Doctype benutzt er aber HTML 4.0 (warum auch immer ...)
cu,
Andreas
Seit wann ist das so?
In HTML 4.01 ist es auf jeden Fall erlaubtLaut Doctype benutzt er aber HTML 4.0 (warum auch immer ...)
Auch wenn ich das tasächlich übersehen habe, es erstaunt mich das dort tatsächlich kein name Attribut vorgesehen ist im gegensatz zum input Element.
Aber Thorsten du brauchst das Attribut auch gar nicht überginb der Funktion dirket die Referenz auf das Formular und du kannst dir den Namen sparen:
<FORM action="senden1.php" method="post" onSubmit="return chkFormular(this)">
und in deinem Skript:
function chkFormular(form)
...
statt: if(document.Formular.Vorname.value == "")
if(form.Vorname.value == "")
ist auch kürzer.
Struppi.
Hi,
Laut Doctype benutzt er aber HTML 4.0 (warum auch immer ...)
Auch wenn ich das tasächlich übersehen habe, es erstaunt mich das dort tatsächlich kein name Attribut vorgesehen ist im gegensatz zum input Element.
Das ist einer der Gründe für die Existenz von HTML 4.01 ;-)
Zitat aus der Änderungsliste: "Forms [...] Addition of the name attribute for backwards compatibility."
Andererseits:
Das name-Attribut in input-Elementen erfüllt in HTML einen Zweck - es wird als Parametername beim Übermitteln des Formulars benutzt.
Das name-Attribut im form-Element jedoch hat in HTML keinen Zweck - es wird lediglich für Javascript benutzt (wofür es aber nicht wirklich benötigt würde, das id-Attribut wäre vollkommen ausreichend).
cu,
Andreas
Hallo,
ich bedanke mich bei euch allen für de schnellen und guten antworten, unddie guten Anregungen! Mit HTML 4.0 war natürlich Betriebsblindheit.
Danke für die Hilfe!
Gruß
Thorsten
Hallo, Thorsten,
abgesehen von dem, was Andreas und Struppi schon geschrieben haben:
kannst du nicht einfach so auf die Formulardaten zugreifen:
var wert=document.forms[#].Eigenschaft;
siehe SELFHTML-Javascript-forms
Liebe Grüße
mbr