Hallo,
für ein Formular habe ich in CSS für input und textarea :hover und :focus duch eine andere Hintergrundfarbe hervorgehoben. Das funktioniert in Browsern auch wie gewünscht. Nun möchte ich gerne den Effekt für den IE auch einbauen.
Da denke ich werde ich um JS nicht herumkommen. Ich bin soweit gediehen, daß ich mittels event-handler
onmousover= und onfocus= im tag notiert diesen Effekt realisieren könnte. Es wäre mir aber lieber das JS nur für den IE laden zu lassen. Da ich für IE mittels:
<!--[if lt IE 7]>
<link rel="stylesheet" media="screen" type="text/css" href="css/IElt7.css" />
<![endif]-->
sowieso ein getrenntes stylesheet einbinde, könnte ich dort doch einfach:
<script type="text/javascript" src="inputhighlight.js"></script>
einfügen, richtig?
Muß ich dann noch im body tag mittels onload die funktionen aufrufen?
Oder doch im jeweiligen input tag onmouseover="inputhighlight()" aufrufen?
Kann man eventhandler auch kombinieren? Z. B. onmouseover, onfocus="inputhighlight()" ?
Gesetzt den Fall ich hätte also eine JS Datei eingebunden. Was müßte ich für den gewünschten Effekt leisten? Meine Überlegung bisher:
- Das Document nach input und textarea tags durchsuchen.
Ich denke mit
var tags = document.getElementsByTagName('input', 'textarea')
(ist das zulässig zwei tag Namen zu nennen?)
müßte ich die Elemente in ein Array schreiben.
Dann müßte ich prüfen, ob Elemente dieses Arrays focus oder mouseover haben? Falls Ja Hintergrund hervorheben und falls Nein Hintergrund transparent darstellen.
Ist das der gangbare Weg, oder ist es auch einfacher Möglich.
Ich kenne leider die Syntax in JS auch kaum. Im Moment beschäftige ich mich auch eher ein wenig mit PHP, von daher komme ich auch "gerne" mit den Schreibweisen durcheinander.
Wäre das ähnlich wie:
if (array[] = mouseover or array[] = focus) {
setmark();
}
else {
unsetmark();
}
Dann müßte ich noch in den Funktionen setmark() die Hintergrundfarbe auf einen Wert einstellen lassen und bei unsetmark() die Hintergundfarbe auf transparent einstellen.
Wie könnte man das erreichen, einfach mit
BgColor="#FFFFFF";
oder ähnlich? Oder muß man mit document.write arbeiten. Wahrscheinlich eher nicht, das das Dokument ja schon geschrieben ist?
Mit Sicherheit habe ich da Syntaxfehler eingebaut. Aber ist das im Prinzip so der richtige Ansatz?
Vielen Dank für Eure Hilfe
^da Powl