PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aktives Eingabefeld farblich abheben ?



Torsten.E
03-05-2004, 14:23
Gibt es per CSS etc. die Möglichkeit, dass das aktive
Eingabefeld z.B. einen anderen Hintergrund hat als die
anderen Formularfelder ?

Torsten.E

undefined
03-05-2004, 20:08
hier gibt es verschiedene Möglichkeiten. Die beste Version ist eine Kombination von PHP, CSS und javascript! Hier mal der Stylesheet.

<input length="80" type="text" name="??" onMouseOut="this.style.backgroundColor='#FFFFFF';" onMouseDown="this.style.backgroundColor='#000000';" />

Torsten.E
03-05-2004, 20:16
kannst du mir die CSS dazu gerade auch noch geben,
dann kann ich nämlich einbauen.

DANKE

Torsten.E

undefined
03-05-2004, 20:39
Nein - Warum ? Er ist schon vorhanden, du hast dir auch nicht die mühe gemacht den Code zu verstehen, warum soll ich dann als Melkmaschine dienen? Generell - ich zeige dir gerne den Weg wie du an deine Info kommst um dein Problem zu lösen, du kannst auch fragen bezüglich des Code machen die ich dir gerne beantworten werde, jedoch mache ich nicht deine Arbeit, wenn du dies nicht möchtest dann schreibe es und ich brauche dir nicht mehr zu Antworten.
gruss undefined

Torsten.E
03-05-2004, 21:14
Ich weis Deine und die Hilfe anderer sehr zu schätzen keine Sorge. Mir ist auch klar, dass mir niemand meine Arbeit abnimmt. ABER: ich frage auch nur Dinge, die ich enweder (noch nicht) kann oder einfach (noch nicht) weis.
Und der Lerneffekt ist hier für mich gigantisch groß.

Also hier ist das Schnippsel das ich meine:

Also das Stück Style, dass ich per PHP generiere und worin auch der "tolle" omouseout enthalten sein sollte.

Torsten.E



echo '<style type="text/css"> ';
// echo '<!--\''
echo 'form { } ';
echo '.Feld ';
echo '{ background-color:#FFFFAA; border:1px solid #0000ff; onmouseout="this.style.backgroundcolor=\'#FFFFFF\'"; onmousedown="this.style.backgroundcolor=\'#000000\'"; } ';
echo 'table { } ';
echo '.td.text {height: 25px; } ';
echo ' td.eingabe {background-color:#FFFF00; } ';
echo '</style>';

undefined
04-05-2004, 00:04
Du gehst da den falschen Weg, denke etwas Modularer. Zuerst einmal eine recht wichtige Grundkenntnis ist zu wissen das ein Event nur mit einem Handler oder einer Load Prozedur angesprochen werden kann. Zum einen würde ich das input entweder in einen Herodec Syntax oder in eine funktion setzen. Ich verwende in solchen fällen meine Template Klasse, hier ein Ausschnitt ich habe sie etwas zur besseren Übersicht gekürzt.


<?php
/**
* $XTPL::html_formtext()
*
* @param string $na #Name
* @param string $in #Value
* @param integer $si #Size
* @param string $st #Stylesheet
* @return string $html
*/

function html_formtext($na = "", $in = "", $si = 30, $ev = "")
{
$val = ( $in != "" ) ? " value=\"" . $in . "\"" : "";
$eve = ( $ev != "" ) ? $ev : "";
return "<input type=\"text\" name=\"" . $na . "\"" . $val . " size=\"" . $si . "\" maxlength=\"" . $si . "\" " . $eve . "xml:lang=\"de\" lang=\"de\" />";
}
?>

Jetzt Kommen wir zu deiner Frage bezüglich Aktives Formular. Wie oben schon erwähnt kannst du einen Event nur bei onload oder handle anwenden. Deshalb im Input ein Event onFocus() zum Initialisieren des Textfeldes zudem möchtest du ein Überwachung daher benötigen wir noch ein onBlur().


<?php
$st = "onFocus=\"this.style.backgroundColor='#99EE00'; this.value='';\"";
$st .= "onBlur=\"this.style.backgroundColor='#EFEFEF';\"";
echo html_formtext("eingabe", "Bitte hier eingeben!", 50, $st);
?>

Für weiter Info siehe selfHtml ;)

Torsten.E
05-05-2004, 14:25
Danke für die ausführliche Antwort. Bin erst gerade wieder ins Büro gekommen, war weg und deshalb auch erst heute die Rückantwort.

Werde mir Deinen Vorschlag gleich mal genauer anschauen/ausprobieren und entsprechend umsetzen versuchen.

Torsten.E

Torsten.E
05-05-2004, 14:44
Super hat geklappt, und gibt auch das Ergebnis wieder,
das ich gesucht habe.

Das ist es was ich mit "LERNEN" gemeint habe. Aus dem Beispiel habe ich 2 Sachen gelernt.
1. Wunsch erfüllt.
2. Flexible funktion für Eingabefelder.

So und jetzt gleich an`s umsetzen :-)

Torsten.E

Torsten.E
05-05-2004, 16:59
... onmouseout="this.style.backgroundcolor='#FFFFFF' ...

Ich will aber einen Style aus einer CSS-Datei angeben.
Wie wird das Eingabefeld bzw. der Style direkt angesprochen, damit man ihm einen anderen zuweisen kann, oder muß da die CLASS gewechselt werden, aber wie genau ?

Torsten.E

undefined
05-05-2004, 17:04
Ich will aber :D
Noch einmal FETT gedruckt!
Wie oben schon erwähnt kannst du einen Event nur bei onload oder einem handle anwenden.
*grins und kopfschüttel*

Torsten.E
05-05-2004, 18:12
Hier die Lösung, abgeändert von Deinem Script

"aktiv" und "deaktiv" wurden in einer CSS-Datei eingerichtet.



$st = "onFocus=\"this.className='aktiv';\"";
$st .= "onBlur=\"this.className='deaktiv';\"";


Torsten.E

:-) ich will aber

undefined
05-05-2004, 19:06
nicht schlecht Herr Specht :cool:
Ich habe es gerade auch auf Kde Konqueror getestet - hier funzt es.
Leute die das Lesen bitte mal auf ihren Browsern testen und Info abgeben. ;)

<html>
<head>
<title></title>
<style type="text/css">
.aktiv { background: #99EE00; }
.inaktiv { background: #EFEFEF; }
</style>
</head>
<body>
<input type="text" name="na" onFocus="this.className='aktiv';" onBlur="this.className='deaktiv';" />
</body>
</html>