Formularansprache: <option>-Auswahl-Kontrolle
Jochen
- javascript
0 wahsaga0 Joachim1 Sven Rautenberg
Help me if you can!
Ich habe ein einziges HTML-Formular (name="eingabeformular") und darin etliche Eingabefelder, u.a. eine Auswahlliste <select> (name="auswahl1"). In dieser Auswahlliste gibt es neben den normalen <options> noch Zwischenüberschriften als <options>, die der Benutzer nicht auswählen darf und die ich deshalb mit dem <value="boese"> versehen habe.
Sollte der Benutzer versehentlich auf eine Zwischenüberschrift innerhalb der Auswahlliste klicken, soll eine JavaScript-Warnmeldung (alert) mit dem Hinweistext "abc" erscheinen.
Im Hinblick auf die in SelfHTML gegebenen Möglichkeiten der Formularansprache mit JavaScript habe ich nun geschrieben:
<script language="JavaScript">
<!--
function auswahlcheck () {
if (document.eingabeformular.auswahl1.value==boese) {
alert("abc");
}
}
auswahlcheck ();
//-->
</script>
Geht nicht. Habe auch die anderen Syntaxmöglichkeiten ausprobiert, aber ich bekomme immer wieder die Fehlermeldung "'document.eingabeformular.auswahl1' ist Null oder kein Objekt". Wo zum Kuckuck mache ich einen Fehler???
Jochen
hi,
if (document.eingabeformular.auswahl1.value==boese) {
hast du irgendwo eine variable namens boese definiert?
nein? dann meinst du vermutlich den textstring "boese". dann schreib den aber auch so.
berücksichtige weiterhin, dass der IE keine eigenschaft value am select kennt. da fragst du stattdessen besser den selectedIndex des selects ab.
gruß,
wahsaga
Hi,
<script language="JavaScript">
Btw: moderne Browser verlangen das konforme type-Attribut
if (document.eingabeformular.auswahl1.value==boese) {
das ist nicht der richtige Weg. Einen Select-Value bekommst Du ueber
document.FORMNAME.ELEMENTNAME[document.FORMNAME.ELEMENTNAME.selectedIndex].value;
Den Value wuerde ich einfach leerlassen.
uebersichtlicher gehts dann so:
var ref = document.FORMNAME.ELEMENTNAME;
if (!ref[ref.selectedIndex].value) alert("ups");
Gruesse, Joachim
Moin!
Ich habe ein einziges HTML-Formular (name="eingabeformular") und darin etliche Eingabefelder, u.a. eine Auswahlliste <select> (name="auswahl1"). In dieser Auswahlliste gibt es neben den normalen <options> noch Zwischenüberschriften als <options>, die der Benutzer nicht auswählen darf und die ich deshalb mit dem <value="boese"> versehen habe.
Benutze <optgroup>! Das ist das dafür vorgesehene HTML-Element, welches in allen existierenden Browsern als nicht-selektierbares, etwas anders formatiertes Listenelement angezeigt wird. Und entsprechend des HTML-Standards (und entgegen der derzeitigen Darstellung in SELFHTML) stellen die Browser auch nur eine einzige Unterebene dar, bzw. haben mit verschachtelten Ebenen teilweise Probleme.