css-Eigenschaften von textarea bei onfocus verändern
Thomas L
- javascript
Hallo Forumler,
ich habe folgendes Formular:
<form name="feedback" action="/kontakt.php" method="post" enctype="multipart/form-data">
Ihre Nachricht:<br>
<textarea id="eingabe" style="width:300px;" class="inactive" onFocus="javascript:setCSSneu()" onBlur="javascript:setCSSalt()" name="eingabe" rows="6" cols="40"></textarea><br><br>
<input name="submit" class="submit" type="submit" value="Absenden">
<input name="loeschen" class="submit" type="submit" value="Daten zurücksetzen">
</form>
Hier hatte ich über
function setCSSneu() { event.srcElement.className='active'; }
function setCSSalt() { event.srcElement.className='inactive'; }
die Klassennamen geändert. Leider funzte dies nur im IE.
Somit habe ich dies probiert:
function setCSSneu() {
var active;
active = eval(document.getElementById("eingabe"));
active.style.backgroundColor = "#FFFFAA";
active.style.border = "1px dashed #AAA";
active.style.color = "#000099";
}
function setCSSalt() {
var inactive;
inactive = eval(document.getElementById("eingabe"));
inactive.style.backgroundColor = "#FFFFFF";
inactive.style.border = "1px dashed #000";
inactive.style.color = "#000000";
}
Dies scheint nun zwar zu klappen, aber geht dies vielleicht auch kürzer?
function setCSSneu() { document.getElementsByName("eingabe")[0].class = active; }
function setCSSalt() { document.getElementsByName("eingabe")[0].class = inactive; }
funzt jedenfalls nicht.
Weiß hier jemand einen Rat???
Vielen Dank schon mal für Eure aufschlussreichen Antworten und viele Grüße.
Thomas L.
Hallo
<textarea id="eingabe" style="width:300px;" class="inactive" onFocus="javascript:setCSSneu()" onBlur="javascript:setCSSalt()" name="eingabe" rows="6" cols="40"></textarea><br><br>
onFocus="setCSSneu();" genauso auch onblur
ich würde es fast so lösen:
<style>
.active{border:1px solid black}
.inactive{border:0}
</style>
<script>
function setCSS(me){
me.className=(me.className == 'active')?'inactive':'active';
}
</script>
<textarea onfocus="setCSS(this);" onblur="setCSS(this);"></textarea>
funktioniert mit ie und ff
Hallo
Danke, für die prompte Antwort!
Werde es gleich mal ausprobieren.
Also noch mal vielen Dank!
Thomas L.
Hi,
<textarea id="eingabe" style="width:300px;" class="inactive" onFocus="javascript:setCSSneu()" onBlur="javascript:setCSSalt()" name="eingabe" rows="6" cols="40"></textarea><br><br>
Schmeiß das javascript: aus den Eventhandlern raus.
function setCSSneu() { event.srcElement.className='active'; }
function setCSSalt() { event.srcElement.className='inactive'; }
Hier wußtest Du also noch, wie das class-Attribut angesprochen wird.
function setCSSneu() { document.getElementsByName("eingabe")[0].class = active; }
function setCSSalt() { document.getElementsByName("eingabe")[0].class = inactive; }
Hier weißt Du plätzlich nicht mehr, wie das class-Attribut angesprochen wird.
cu,
Andreas
Hallo,
Also so hier?
<textarea id="eingabe" style="width:300px;" class="inactive" onFocus="setCSSneu()" onBlur="setCSSalt()" name="eingabe" rows="6" cols="40"></textarea>
function setCSSneu() { document.getElementsByName("eingabe")[0].className = active; }
function setCSSalt() { document.getElementsByName("eingabe")[0].className = inactive; }
Funzt aber trotzdem nicht!?
Was ist daran denn verkehrt?
Fragt sich
Thomas L.
PS: Trotzdem erst mal vielen Dank für Deine aufschlussreichen Hinweise!