Hallo Zusammen!
So, dass Problem mit der Dartsellung der Hintergrundfarben in Firefox und Internet Explorer ist nun positiv gelöst!
Folgende Lösung inkl. Code.
Der HTML Code einer Tabellenzeile von sehr vielen (es werden bestimmt 50 solcher werden):
In jeder neuen Zeile werden die Namen von mir einfach erhöht (also Eingabe1, Eingabe2, Eingabe3,...) damit es keine Verwechslungen im Quelltext gibt.
Gleichermaßen können die Felder exakt angesprochen werden.
HTML:
<body text="#FFFFFF" bgcolor="#000000" style="font-family:Verdana" onLoad="GoGreenStart()">
...
<form name="HerrenErgebnisse" method="get" action="<?php $_SERVER['PHP_SELF'];?>" >
...
...
<tr>
<th id="id1"><?php $id=1;?>Spielername</th>
<td width="70"><select size="1" name="SpieltagID1" id="SpieltagID1" onChange="GoGreenSpieltag('SpieltagID1')">
<option id="a" value="s0">Spieltag</option>
<?php include '../../include-files/Dropdown.php';?>
</select>
</td>
<td width="70" ><select name="Wurffeld1" id="Wurffeld1" size="1" onChange="GoGreenWurffeld('Wurffeld1')">
<option id="a" value="0" >Würfe</option>
<option id="b" value="100">100</option>
<option id="b" value="200">200</option>
</select>
</td>
<td>Ergebnis: <input type="text" maxlength="4" size="5" id="Eingabe1" name="Eingabe1" onKeyup="GoGreenErgebnis('Eingabe1')"> </td>
<td id="klein"><?php include '../../include-files/LetzterSpieltag.php';?></td>
<?php include '../../include-files/BilderOKNotOkEintrag.php';?>
</tr>
...
...
</form>
</body>
Bei jedem input Feld (input oder select) werden die Namen des Feldes als String mit an eine Javascript Funktion übergeben.
Diese kann dann das Feld entsprechend den Einträgen
rot oder
grün erscheinen lassen.
Im Body werden alle Formularfelder entsprechend ihrer Einträge ebenfalls über eine Javascript-Funktion gefärbt. ( GoGreenStart() ).
Nun die Javascript Funktionen:
Code:
function GoGreenSpieltag(Inhalt){
FeldA = Inhalt;
if(window.document.getElementById(FeldA).value == "s0"){
window.document.getElementById(FeldA).style.backgroundColor="#F82811"; //Rot
}
else{
window.document.getElementById(FeldA).style.backgroundColor="#11FE02"; //Gruen
}
}
function GoGreenWurffeld(Inhalt){
FeldB = Inhalt;
if(window.document.getElementById(FeldB).value > 0){
window.document.getElementById(FeldB).style.backgroundColor="#11FE02"; //Gruen
}
else{
window.document.getElementById(FeldB).style.backgroundColor="#F82811"; //Rot
}
}
function GoGreenErgebnis(Inhalt){
FeldC = Inhalt;
if(window.document.getElementById(FeldC).value==""){
window.document.getElementById(FeldC).style.backgroundColor="#F82811";
}
else{
window.document.getElementById(FeldC).style.backgroundColor="#11FE02";
}
}
function GoGreenStart(){
Anzahl = window.document.HerrenErgebnisse.length;
for(var zaehler = 0; zaehler < Anzahl-1; zaehler++){
if(window.document.HerrenErgebnisse.elements[zaehler].value=="" || window.document.HerrenErgebnisse.elements[zaehler].value == "s0" || window.document.HerrenErgebnisse.elements[zaehler].value==0){
window.document.HerrenErgebnisse.elements[zaehler].style.backgroundColor="#F82811"; //Rot
}
else{
window.document.HerrenErgebnisse.elements[zaehler].style.backgroundColor="#11FE02"; //Gruen
}
}
}
Somit kann man sich CSS beim Färben der Formularfelder sparen, bzw. man muss es sich sogar sparen, da es bei den beiden Browsern anscheinend unterschiedliche Interpretaionen des CSS gibt.
So, ich hoffe, dass ich allen weiterhelfen konnte, die das gleiche Problem entdecken.
Viele Grüße,
nic1981