Formulare
Zurück zum Script-DB Eingang
http://www.erleuchtet.kilu.de/Script-DB/index.htm
Ausfüllen
Textarea ohne Scrollbalken
Textarea ohne Scrollbalken I
Ein Textfeld ohne Scrollbalken ausführen zu lassen ist möglich über css:
textarea
{
overflow:auto;
/*overflow:hidden;*/
background-color : white;
border: Medium;
/* NUR IE: */
scrollbar-3d-light-color:#C0C0C0;
scrollbar-arrow-color:#FFFFFF;
scrollbar-base-color:#374962;
scrollbar-dark-shadow-color:#808080;
scrollbar-face-color:#FF0000;
scrollbar-highlight-color:#FF2311;
scrollbar-shadow-color:#FFFF80;
}
<TEXTAREA NAME="Eingabe" ROWS="10" COLS="55" wrap="off" >
</TEXTAREA>
Ist jetzt der Seitenhintergrund auch weiß, dann verschwindet der Textarea - Eingabebereich als solcher, bis seine Dimensionen überschritten werden; in dem Fall erscheinen die Scrollbalken (wieder). Allerdings auf der Innenseite, so daß der Text jedesmal neu umgebrochen wird. Deshalb wrap=off. (Ansonsten sollte man standardmäßig wrap="soft" angeben, um den Text auch im alten Netscape 4.x umbrechen zu lassen)
overflow:hidden statt overflow:auto bewirkt, daß die Scrollbalken nie angezeigt werden.
Mitwachsende Formularfelder
Mitwachsende Formularfelder
1. Einzeilige Felder:
<SCRIPT type="text/javascript" language="JavaScript">
<!--
function expand (nr)
{
a = document.forms[0].elements[nr]. value;
b = a.length; document.forms[0].elements[nr).size = b+1;
}
// -->
</SCRIPT>
Wenn das Feld z.B. das 3. Formular-Element auf der Seite ist:
<input type="text" name="wert" size=10 value="" onChange=javascript:
expand(2)">
(Aus: Internet Magazin 01/07)
---
2. Mehrzeilige Felder:
Diese erfordern etwas mehr Aufwand.
(Textarea ohne Scrollbalken II)
<TEXTAREA NAME="Eingabe" WRAP="soft" ROWS="10" COLS="55" onKeydown="anpassen()" onClick="anpassen()" > </TEXTAREA>
<INPUT TYPE="checkbox" NAME="Anpassen" VALUE="an" CHECKED> Textfeld Anpassen
<SCRIPT type="text/javascript" language="JavaScript">
<!--
function anpassen()
{
var ZAnz = document.forms[0].Eingabe.value.length;
var ZInhalt = document.forms[0].Eingabe.value;
var ZBreite = document.forms[0].Eingabe.cols;
var Ausgleich = 0.1; // Ausgleich für Rundungsfehler
var Abstand = 10; // Zusätzliche Leerzeilen
var Zmind = 200; // Trigger
var Zeilen = 0; // Dummy
if (document.forms.Angebot.Anpassen.checked == true )
{
window.status = "Berechne Textfeld... Es hilft, ein paar Absätze einzubauen - `Textfeld Anpassen deaktivieren";
// Wie viele Umbrüche?
var EinAbsatz = ZInhalt.search(/\n/g);
// Umbruch am Ende?
var Lzeichen = ZInhalt.substring(ZAnz-1);
if (Lzeichen != "\n") // Kein Absatz am Ende
{
if (ZAnz > Zmind)
{
alert("- Meldung von Textfeld Anpassen - \n\nBitte Absätze in den Text einbauen, \n\ninsbesondere am Ende hinzufügen");
document.forms[0].Eingabe.value = ZInhalt + "\n\n";
ZInhalt = ZInhalt + "\n\n";
}
}
var Abs = ZInhalt.match(/\n/g);
if (Abs)
{
var Umbr = (Abs.length);
}
else
{
var Umbr = 0;
document.forms[0].Eingabe.value = ZInhalt + "\n";
}
// Wie viele Zeilen?
var ZZln = ZInhalt.match(/.+\n/g);
if (ZZln)
{
for (var i = 0; i < ZZln.length; ++i)
{
var WZln1 = (ZZln[i].length / (ZBreite));
var WZln = (parseInt(WZln1 + (WZln1 * Ausgleich)));
if (WUmbr)
{var WUmbr = (WUmbr + WZln);}
else
{var WUmbr = WZln;}
}
}
else
{var WUmbr = 0;}
var Zeilen = (WUmbr + Umbr);
// Anpassen:
document.forms[0].Eingabe.rows = (Zeilen + Abstand);
document.forms[0].Eingabe.style.overflow='auto';
}
else // Nicht anpassen
{
document.forms[0].Eingabe.rows = Abstand;
}
window.status = " ";
}
// -->
</SCRIPT>
Das Script arbeitet nicht ganz präzise.
Sollte auf Grund der Eigenart der Eingabe der Scrollbalken doch wieder erscheinen, den Ausgleich und den Abstand gerigfügig erhöhen.
Tabulatorsprünge erzwingen
In Formularen Tabulatorsprünge durch TABINDEX erzwingen
<Input type = "Radio" Name = "xysn" Value = "1" TABINDEX = "2" >
<BR>
<Input type = "Radio" Name = "blahblah" Value = "2" TABINDEX = "1" >
Ruft die beiden Eingaben in umgekehrter Reihenfolge auf
Funktioniert in modernen Browsern auch bei normalen Verweisen: <A HREF TABINDEX = ...
Formularfeld vormarkieren
Ein bestimmtes Formularfeld vormarkieren:
<body Onload="document.forms.Suche.SuchTextEingabe.select();document.forms.Suche.SuchTextEingabe.focus();">
In DER Reihenfolge! Erst select, dann focus.
OnClick="value=' ';"
Leert das Verzeichnis wieder.
- - - -
Felder markieren
Mit CSS:
'input:focus' reagiert auf das Anklicken von Formular-Elementen (Felder und Submit-Button)
input:focus { background-color : #000000;}
Css bei focus geht allerdings nur bei gecko-basierten Browsern.
Der MS Explorer benötigt Javascript:
<input type=text
onFocus="this.style.backgroundColor='#000000'"
onBlur="this.style.backgroundColor='#FFFFFF'"
>
Oder:
onChange="this.style.backgroundColor='#FFFFFF'"
Vorausgefülltes Formularfeld
Schreibt Text in ein bereits vorausgefülltes Formularfeld, ohne es vorher löschen zu müssen
Internet Magazin 10/01
<form method="POST"
action="http://www.blahblah.de" name="suchformular">
<input size ="8" type="text" name="suche" value="suchbegriff?"
onFocus="javascript:if (document.suchformular.suche.value == 'suchbegriff?')
document.suchformular.suche.value = ' ' ;"> <input border="0"
src="../images/go.gif" type="image" width="28" height="18" >
</form>
oder:
Internet Magazin 07/01
<Input type="text" value="vorgabe" OnFocus="if(this.value=='Geben Sie hier etwas ein!') this.value=' '" OnBlur="="if(this.value==' ')this.value='vorgabe'">
oder:
Internet Magazin 09/02
<Input type="Internet-Magazin" value="Internet-Magazin" OnFocus="if(this.value==' Internet-Magazin ') this.value=' '" OnBlur="if(this.value==' ') this.value=' ' Internet-Magazin ">
Oder: Internet Magazin Online
Anleitung:
1. Script im <HEAD> Teil der Seite einfügen.
2. Folgendes onFocus Element in das gewünschte Forumularobjekt einfügen: onFocus="TextWeg(this)" Dieses bei jedem Formularobjekt wiederholen, bei dem der default Wert gelöscht werden soll.
Script:
<head>
<script>
function TextWeg(das_Feld){
if (das_Feld.defaultValue==das_Feld.value)
das_Feld.value = ""
}
</script>
</head>
<body bgcolor="#FFFFFF">
<form>
<input type="text" value="Der default Wert" onFocus="TextWeg(this)">
</form>
</body>
</html>
Ersetzt Eingabe durch Sternchen
Ersetzt in Formularen die Eingabe durch Sternchen *
<Input name="irgendwas" size="20" type="password" >
normal ist:
<Input name="irgendwas" size="20" type="text" >
Prüfen
Absenden sperren
Absenden vorläufig sperren:
<HEAD>
<Script>
Function prf()
{
if (document.forms.DDD.wasimmer.checked)
{document.forms.DDD.absenden.disabled=false;}
else
{document.forms.DDD.absenden.disabled=true;}
}
</Script>
</HEAD>
<BODY BGCOLOR="#ffffff" onload="document.forms.DDD.reset();">
<Form Name="DDD" Action=dahin>
<Input type="checkbox" value="OK" name="wasimmer" Onclick="javascript:prf();"> Alles OK
<Input type="submit" name="absenden" value="los" disabled>
</Form>
(Internet Magazin 07/06)
- - - -
Auch so läßt sich auch das Absenden eines Formulars mit einer Sicherheitsabfrage abfangen:
<HEAD>
<SCRIPT language="JavaScript" type="text/javascript">
<!--
function machen()
{
Irgendwas;
}
function los()
{
Prf = confirm(" WIRKLICH ?! ");
if (Prf == false)
{document.forms.DDD.reset();}
else
{
document.forms.DDD.submit();
// bzw.
machen();
}
}
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#ffffff" onload="document.forms.DDD.reset();">
<Form Name="DDD" Action=dahin>
<INPUT TYPE=button VALUE="Ja!" > Machen
<BR>
<INPUT TYPE=button VALUE="LOS" Onclick="javascript:los();">
</FORM>
- - - -
<BODY onload="document.forms.DDD.reset();" ... dient dazu, die Checkbox auf jeden Fall beim Laden der Seite zu deaktivieren
------------
Variante 2: Verhindert, daß ein Formular versehentlich zweimal abgesendet wird.
<SCRIPT language="JavaScript" type="text/javascript">
<!--
function Abschicken()
{
if (document.Formular.Nachfrage.checked)
{
// Sperrt das Formular sofort nach dem ersten Absenden
document.Formular.Nachfrage.checked = false;
// usw...
}
}
// -->
</SCRIPT>
<FORM NAME="Formular" ACTION=dahin>
...Input irgendwas
<INPUT TYPE= Button NAME="Verwerten" VALUE="Los," OnClick="Abschicken();">
<BR>
- Bitte nur einmal abschicken; Werte erscheinen sonst mehrfach -
<INPUT type="checkbox" VALUE="0K" NAME="Nachfrage" >[OK]
</FORM>
Formulare Prüfen 1
Formulare Prüfen
<html>
<head>
<title>Formularprüfung</title>
<script language="Javascript">
<!--
function pruef()
{
if (!document.Form1.userName.value)
{
alert("Hier fehlt noch was!");
return false; // verhindert das Abschicken des Formulars
// Wenn OnSubmit="return pruef();"
}
// else return true;
}
//-->
</script>
</script>
</head>
<body>
<H1> Formulare </H1>
<Form Name="Form1" OnSubmit="return pruef();"
actiaction="mailto:hier@da.de"method="post" enctype="text/plain">
Namen:
<Input Name="userName" Type=text></input>
<Input Name="Los" Type=Submit value="Abschicken"></input>
</Form>
</head>
<body>
-------
AUCH:
<Input Name="userName" Type=text Size=80 Value="Hier bitte Namen eingeben" OnChange="javascript:if(this.value=='' ) {alert(' Bitte Namen eingeben ' )}">
(Prüft auf leeres Feld)
-------
AUCH:
<!--
function pruef()
{
if (document.userName.value == "")
{
alert("Hier fehlt noch was!");
document.userName.focus();
return false;
}
else return true;
}
//-->
Formulare Prüfen 2
http://www.erleuchtet.kilu.de/autostyle/_wortliste/form_wortliste.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<!--
Modifiziert aus Internet Magazin 10/04
-->
<SCRIPT language="JavaScript" type="text/javascript" src="form_wortlist.txt"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--
// Falls nicht mit einer externen Wortliste gearbeitet werden soll:
// var wortliste = ' Baum Strauch Blume Haus ';
function checkwort()
{
var test1 = document.Formular1.userName.value;
alert ("Prüfe Eingabe");
alert ("Eingabe = " + test1);
if (!document.Formular1.userName.value)
{
alert("Bitte Wort eintragen!");
// beendet Vorgang
return false;
}
// Vorgabe:
rueckgabe = false;
// if (rueckgabe == false)
// { alert ("Erstmal Falsch") }
// if (rueckgabe == true)
// { alert ("Erstmal Richtig") }
var test2 = " " + test1 + " ";
alert ("Eingabe Test1 = " + test2);
// Unabhängigkeit von der Großschreibung:
var test2 = " " + test1.toUpperCase() + " ";
alert ("Eingabe Test2 = " + test2);
ListeX = " "+wortliste.trim()+" ";
// Unabhängigkeit von der Großschreibung:
ListeX = ListeX.toUpperCase();
alert ("Die Wortliste lautet: -" + ListeX + "-");
stelle = ListeX.indexOf(test2);
if (stelle > -1)
if (stelle != '')
{ rueckgabe = true }
if (rueckgabe == false)
{
alert ("Die Eingabe ist Falsch")
document.Formular1.userName.value = "";
}
if (rueckgabe == true)
{
alert ("Die Eingabe ist Richtig")
// Wichtig! Form Action hierher!
doc document.Formular1.action="mailto:hier@da.de";
alert ("Formular wird abgeschickt")
}
return rueckgabe;
// alert ("Getestet");
}
// end hide -->
</SCRIPT>
<TITLE>Formular-Eingabe mit JavaScript-Wortprüfung</TITLE>
</HEAD>
<BODY BACKGROUND="" BGCOLOR="#ffffff" TEXT="#000000" LINK="#0000ff" VLINK="#0000ff"
ALINK="#ff0000">
<P>
<A HREF="../" target="_top">zurück</A>
<H1>
Formular-Eingabe Wortprüfung
</H1>
<P>
<U>Testet auf Worte in 'form_wortlist.txt'</U>:
<P>
<!-- JavaScript schreibt hier die Wortliste hin -->
<SCRIPT language="Javascript">
<!--
document.write (wortliste)
//-->
</SCRIPT>
<P>
- um bei erlaubter Eingabe das Formular abzuschicken
<P>
<!-- Form OnSubmit="return checkwort();" -->
<FORM Name="Formular1" OnSubmit="return checkwort();" method="post" enctype="text/plain">
Namen:
<INPUT Name="userName" Type=text>
<INPUT Name="Los" Type=Submit value="Abschicken">
</FORM>
<P>
</BODY></HTML>
Achtung:
Da die 'erlaubten Worte' in JavaScript entweder im Quelltext der Seite einzusehen sind, oder die Textdatei mit ihnen beim vollständigen Speichern der Webseite auf der Festplatte landet, ist die Methode als echte (Pass-) Wortprüfung ungeeignet, und dient nur als Vorfilter und Hinweis an den Benutzer.
Ein Formular- Button (egal welcher Art) hat darüber hinaus die Eigenschaft, das Formular auch dann abzuschicken, wenn JavaScript nicht eingeschaltet ist oder einen Fehler aufweist - was schnell passieren kann.
Um das zu verhindern, kann man entweder den Formular- Button durch einen JavaScript- Verweis ersetzen:
<Input Name="Los" value="Abschicken" onclick="javascript:checkwort();" NOtype = "button">
- was dann wieder Schwierigkeit mit sich bringt, die ENTER- Taste zum Abschicken des Formulars zu benutzen -
oder aber (wie hier) die Action- Anweisung aus dem Formular selbst zu entfernen und in die JavaScript- Funktion einzubauen:
docu document.Formular1.action="mailto:hier@da.de";
In dem Fall kann das Formular nur dann abgeschickt werden, wenn JavaScript korrekt arbeitet und die Sperre somit aktiv ist.
Formulare Prüfen 3
Verlangt eine Sucheingabe von mindestens 3 Buchstaben
<HTML>
<HEAD>
<script type="text/javascript">
<!--
function chkFormular()
{
if (document.forms.Suche.Sucheingabe.value.length < 3)
{
alert("Bitte mindestens drei Buchstaben eingeben");
document.forms.Suche.Sucheingabe.focus();
return false;
}
}
//-->
</script>
</HEAD>
<BODY>
<form name="Suche" action="suche.php" method="post" onSubmit="return chkFormular()">
<input name="Sucheingabe" type="text" size="50" maxlength="50" value="a">
<input type="submit" value="Suchen">
</form>
</BODY>
</HTML>
Formulare Prüfen 4
// Prüft, welches Element eines Formulars gerade aktiviert ist:
// - und löst mit 'submit' eine Aktion aus -
function pruefen()
{
var Formular = document.forms["Formular-Name"];
var InputAnzahl = Formular.getElementsByTagName("input").length;
alert (InputAnzahl);
for (y=0; y < InputAnzahl; y++)
{
if (Formular.elements.Element-Name[y].checked == true)
{
alert ((y+1) + " IST CHECKED");
Formular.submit();
}
else
{
alert ((y+1) + " nicht checked");
}
}
}
// Lädt das Skript 1 Sekunde, nachdem die Seite (vollständig) geladen wurde:
window.onload = window.setTimeout('pruefen()', 1000);
Ohne Sonderzeichen
Die Eingabe in einem Formularfeld nachträglich auf Buchstaben und Ziffern reduzieren:
OhneSonderzeichen = Eingabe.replace(/\W/gi,"");
Aus: Internet-Magazin 02/06
E-Mail-Adresse Prüfen
Prüfen auf Gültigkeit der E-Mail-Eingabe:
Internet Magazin Online
Beschreibung: Dieses Script überprüft den Inhalt einer Textbox, ob eine gültige E-Mail Adresse eingegeben wurde.
Folgende Kriterien werden überprüft:
- Mindestens ein Zeichen vor dem &quo "@"
- &quo "@"nach vorangestellten Zeichen
- Midestens ein Zeichen nach dem &quo "@",welches von einem Punkt (.) gefolgt wird.
- Diesem Punkt folgt entweder eine zwei oder drei Zeichen lange Zeichenkette.
----
var kette = document.forms.Eingabe.EMail.value;
var filter = /^.+@.+..{2,3}$/;
if (filter.test(kette) == false)
{
alert("Bitte eine gültige E-Mail-Adresse eingeben!");
document.forms.Eingabe.EMail.focus();
return false;
}
Eingabetext zählen
Zählen, wie viele Zeichen in ein Formularfeld eingegeben wurden:
<FORM NAME=TEST>
<TEXTAREA NAME="Eingabefeld" ROWS="10" COLS="55"
onKeydown="zaehlen()" onClick="zaehlen()" > </TEXTAREA>
<P>
<INPUT TYPE="text" NAME="ZZ" VALUE=" " SIZE="12" MAXLENGTH="15" readonly>
<SCRIPT type="text/javascript" language="JavaScript">
<!--
function zaehlen()
{
var ZZL = document.TEST.Eingabefeld.value.length;
document.TEST.ZZ.value = (ZZL + " Zeichen") ;
}
// Damit das Feld nicht als solches auffällt, kann man es mit CSS im Java Script in der Hintergrundfarbe tarnen - das geht im IE besser als über CSS-Class und SPAN:
document.TEST.ZZ.style.backgroundColor='blue';
document.TEST.ZZ.style.border='0';
</SCRIPT>
</FORM>
"readonly" bewirkt, daß das (Ausgabe-) Textfeld nicht beschrieben werden kann.
Buttons
Button Stylen
<form action=123.htm>
<input type="submit" name="btnG" value="Abschicken" style="width: 140" width="140"
>
<input type="image" name="btnG" src="submit.gif" alt="abschicken" Align="bottom" border="0" width="75" height="19"
>
</form>
----
width="140" für Netscape 4
Weitere:
style=
background-color: white;
border-bottom-color: red;
border-right-color: red;
color: red; (=Schrift)
Internet Magazin 08/04
Text und Button
Text - und Button - Links mit Erklärung
"ALT" -Tag für Links:
<A HREF="" TITLE="Zur Hauptseite" > (Nur ab Microsoft Internet Explorer 5 - evtl. auch Netscape 6 )
Wird vom Internet Explorer für Sehbehinderte vorgelesen!
Geht im Internet Explorer auch in Formular - Tags:
<form method="GET" action="http://www.google.com/search" target= "MainFrame">
...
<input type="submit" name="btnG" value="Google Suche" onclick="return check()" title="Seiteninterne Suche">
</form>
- - - -
Als type=" " läßt sich im Prinzip alles eintragen; läßt man es weg, ensteht ein aktives Textfeld
Verweis als Button
Ergibt den Text-Verweis "Abschicken" als Absende-Button für ein Formular:
<a href="javascript:document.forms.Name.submit();">Abschicken</a>
von http://www.drweb.de/
----
oder auch:
<FORM ACTION=http://... METHOD=GET>
<INPUT TYPE="SUBMIT" VALUE="Dahin">
</FORM>
JavaScript-Button
<FORM>
<input type="button" onClick="javascript:self.location.href='weiter.htm';" value="Weiter!">
</FORM>
Man kann auch beide kombinieren, um für alle Fälle gerüstet zu sein:
<FORM ACTION="weiter.htm" METHOD="GET">
<INPUT TYPE="SUBMIT" VALUE="Weiter!" onClick="javascript:self.location.href='weiter.htm';" >
</FORM>
Allerdings wird dann der FORM ACTION - Befehl nicht ausgeführt; man muß in "weiter.htm" für diesen Fall eine Fehlermeldung einbauen.
NB: 'parent.location' statt 'self.location'
bewirkt, daß alle Frames übersprungen werden und die angesproche Seite im übergeordneten Fenster geöffnet wird.
- - - -
Als type=" " läßt sich im Prinzip alles eintragen; läßt man es weg, ensteht ein aktives Textfeld.
Theoretisch ließe sich auch die Beschriftung (value="") über Javascript (document.write) steuern.
Button mit Link
Button mit (JavaScript-) Link:
<FORM>
<INPUT TYPE="button" VALUE="Button-Beschriftung" ONCLICK="window.location.href='.../irgendwo.xy.de/1.htm'">
</FORM>
bzw.:
<FORM>
<INPUT TYPE="button" VALUE="Button-Beschriftung" ONCLICK="EineFunction();" >
</FORM>
Statt TYPE="button" geht auch TYPE="submit", dann wird automatisch das Formular mit verarbeitet.
-----------
oder:
<FORM>
<A HREF="yxz.htm"> <INPUT TYPE="button" value="Beschriftung"> </A>
</FORM>
-----------
Auch möglich, aber langsamer, da die komplette Seite neu geladen wird:
<FORM ACTION="#Start" method="post">
<input type="submit" value="Zum Start">
</FORM>
Button mit Bild
Button mit Bild
Internet Magazin 8/02
<FORM>
<INPUT TYPE="image" src="button.gif">
</FORM>
Leider funktioniert das nur bei den Sende- Buttons, nicht aber für den Reset- Button. Mit Java Script geht es doch, und Besucher ohne Java Script sehen den gewöhnlichen Grauen Button:
<FORM>
<script type="text/javascript">
<!--
document.write ("<a href=\"javascript:document.forms[1].reset()\"><img src=\"frage.gif\" border=\"0\"></A>");
//-->
</script>
<noscript><input type="reset" value="löschen"></noscript>
</FORM>
- - -
<FORM METHOD=POST NAME="suche" ACTION="...">
<CENTER>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write('<A HREF="javascript:document.form.submit();"><IMG');
document.write(' SRC="submit.gif" ALT="Submit"');
document.write(' WIDTH=62 HEIGHT=28 BORDER=0></A>');
//-->
</SCRIPT>
<NOSCRIPT>
<INPUT TYPE=SUBMIT VALUE="Start">
</NOSCRIPT>
</CENTER></FORM>
von http://www.editorial.de/tricky/
-------
Geht immer:
<button type="submit" Name="Los" value="" style="cursor:pointer" ><IMG SRC="xy.gif"> lalala </button>
(Internet Magazin 07/06)
(Der cursor-style sorgt dafür, daß überhaupt ein Zeiger erscheint)
Tabellen-Buttons
Tabellen-Buttons
Da die Aufschrift von Schaltflächen immer variiert, kann man eine Grafik als Hintergrundbild in eine Tabellenzelle einbauen und die Beschriftung des Buttons als gestalteten Text in den Zelleninhalt hineinschreiben.
Da sich dabei die Verlinkung über HTML nur auf den Beschriftungstext bezieht, sollte man die Verlinkung nicht auf die Schrift legen, sondern die Zelle; Mit einem OnClick- Event:
(Der cursor-style sorgt dafür, daß überhaupt ein Zeiger erscheint)
<P>
Table - Buttons
<P>
Achtung: Ergibt je nach Browser unterschiedliche Border-Farben! Alternativ: Als CSS-Style formatieren
<P>
<TABLE BORDER=4 Bordercolor="DarkGreen" CELLSPACING="0" CELLPADDING="0">
<TR >
<TD>
<TABLE BORDER=4 Bordercolor="Yellow" CELLSPACING=4 CELLPADDING=4 >
<TR>
<TD onclick="javaScript: window. location. href = 'Adresse 1';" style="background-color: rgb(255, 204, 51); cursor:pointer"
width="10" background="XXX.GIF">Beschriftung_1</TD>
</TR>
</TABLE>
<TABLE BORDER=4 Bordercolor="Yellow" CELLSPACING=4 CELLPADDING=4 >
<TR>
<TD onclick="javaScript: window. location. href = 'Adresse 2';" style="cursor:pointer"
onMouseOver = "this.bgColor='#CCCFCC'" onMouseOut = "this.bgColor='#FFFFFF'"
width="10" background="XXX.GIF">Beschriftung_2</TD>
</TR>
</TABLE>
<TABLE BORDER=4 Bordercolor="Yellow" CELLSPACING=4 CELLPADDING=4 >
<TR>
<TD onclick="javaScript: window. location. href = 'Adresse 3';" style="cursor:pointer"
onMouseOver = "this.bgColor='#DFCFCC'" onMouseOut = "this.bgColor='#FFFFFF'"
width="10" background="XXX.GIF">Beschriftung_3</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
Technisches
checked und selected
Früher genügte es, in HTML- Formular- Auswahllisten
<SELECT size="1" Name="Auswahl" width="100">
einer der Optionen mit "SELECTED" zu belegen, um diese als augewählt zu aktivieren.
Das war eindeutig.
Im Zuge des alles komplizierter machens soll es nun heißen:
<option value="Wert" selected="selected">etwas </option>
- wie übrigens auch checked="checked" in Checkboxen.
Allerdings ist es nun glücklicherweise oder leider so, daß die Browser immer noch das alte "selected" bzw. "checked" interpretieren. Was dazu führt, daß es einerseits völlig gleichgültig ist, was als Wert angegeben wird -
<option value="Wert" selected="mumpitz">
funktioniert genauso wie
<option value="Wert" selected="">
als Auswahlkriterium -
wie andererseits auch dazu, daß eine Definition des Wertes für "selected" bzw. "checked" in JavaScript oder PHP zu keinem Ergebnis führt.
Wenn, dann muß die ganze Variable selbst (checked="x" bzw. selected="y") - mit oder ohne Wert - beispielsweise in PHP vollständig ausgeschrieben werden, um die Auswahl in der Auswahlliste auch für den Benutzer sichtbar zu machen und festzulegen.
Einzig mit selected == true, als Alternative zu selectedIndex (=Auswahl Nr) in JavaScript-Abfragen kann etwas erreicht werden.
Formularteile als Verweise
A: Das Script für den Dateikopf:
<SCRIPT LANGUAGE="JavaScript">
<!--
function changeBox(cbox)
{
box = eval(cbox);
box.checked = !box.checked;
}
// -->
</script>
Checkbox mit Erweiterung
<form name=form>
<input type=checkbox name=check>
<a href="" onClick="changeBox('document.form.check');return false">Klicken Sie hier!</a>
</form>
B: Das Script für den Dateikopf:
<SCRIPT LANGUAGE="JavaScript">
<!--
function go(link)
{
window.location.href = link;
}
// End -->
</script>
<form name="form">
<input type="radio" name="link"
onClick="go('../faq.shtml/');"> FAQ
</form>
von: http://www.drweb.de/
Unterschiedliche Aktionen
Man kann von einem Formular aus mit mehreren Submit-Buttons verschiedene festgelegte Werte abschicken, ohne daß eine Auswahl getroffen werden muß:
<FORM ACTION="lala.php" METHOD="POST">
Initialisierung des Wertes - 1X!
<INPUT TYPE="hidden" NAME="Wert" VALUE="null">
...
<INPUT TYPE=submit Value="Eins" Onclick="javascript:document.forms[0].Wert.value='1'; ">
<INPUT TYPE=submit Value="Zwei" Onclick="javascript:document.forms[0].Wert.value='2'; ">
usw.
Formular in einem anderen Frame
Wenn man ein Formular in einem anderen Frame abschicken will, sollte man auf das Fenster in seiner Reihenfolge 0,1,2... zurückgreifen; der Name ist unsicher. Evtl. müßte der Pfad verkürzt werden, damit alle Browser diesen intrepretieren:
DieSeite = parent.frames.name;
DieSeite.document.FormularName.submit();
Ansonsten:
parent.frames[0].document.FormularName.submit();