Avatar billede dimmer22 Nybegynder
21. november 2003 - 13:59 Der er 5 kommentarer

Tryk på celle og send farven videre til felt

Jeg har en række celler med forskellige farver, og når man trykker på en celle, skal cellen farve gå videre til en større tabel (TabelStor) og en tekstbox (TekstFarvekode)... Men hvordan gøres dette?
Avatar billede roenving Novice
21. november 2003 - 14:32 #1
<td style="background:#369" onclick="document.getElementById('TabelStor').style.backgroundColor='#369';document.forms[0].TekstFarvekode.value='#369';">&nbsp;</td>
Avatar billede thesurfer Nybegynder
21. november 2003 - 14:38 #2
Jeg går ud fra at det er cellens farve du vil have fat i?...:


<SCRIPT LANGUAGE="JavaScript">
<!--
function farve(mycolor)
{
document.forms['FORMNAVN'].TekstFarvekode.value=mycolor;
}
//-->
</SCRIPT>

<td style="background-color: #FF0000" onClick="farve(this.style.backgroundColor);">

<form name="FORMNAVN">
<input type="text" name="TekstFarvekode">
<form>


Style="..." skal bruges, ellers virker det ikke..

I Opera v7.20 fanger den RGB farverne, i stedet for Hex som Internet Explorer gør.
Avatar billede thesurfer Nybegynder
21. november 2003 - 15:46 #3
Jeg fandt et script hvor man indtaster RGB værdien af farven, delt op på 3 textboxe, og så konvertede den dem til Hex værdien.
Det virkede fint i Internet Explorer, men i Opera viste den RGB værdier i formatet "RGB(XXX,XXX,XXX)".
Jeg har modificeret scriptet, så det nu checker om de 3 første tegn er "rgb" (lowercase). Hvis de er, udføres konverteringskoden, og mycolor får den rigtige værdi. Ellers har mycolor den rigtige værdi.
Lige meget hvad, lægges mycolor værdien over i textboxen "TekstFarvekode".

Det skal lige siges at, da jeg ikke er en haj når det kommer til JavaScript, er der sikkert en eller anden måde at optimere scriptet på.
Det kan roenving sikkert :)

Jeg håber at det er et svar du kan bruge, og lægger derfor dette svar. Hvis ikke, afviser du bare.


*** Her er scriptet:

<SCRIPT LANGUAGE="JavaScript">
<!--
// This script came from the Web-Development.Com JavaScript Site
// Located at http://www.web-development.com/
// Written by Mike Brittain (brittaim@lafayette.edu)
//
// Edited by theSurfer. Credits: to Mike Brittain.


function farve(mycolor)
{

if (mycolor.toLowerCase().substring(0,3) == "rgb") {

mycolor = mycolor.substring(4,mycolor.length - 1)
mycolor = mycolor.replace(/ /g,"");

var r = mycolor.substring(0,mycolor.indexOf(","))
mycolor = mycolor.substring(mycolor.indexOf(",") + 1, mycolor.length)

var g = mycolor.substring(0,mycolor.indexOf(","))
mycolor = mycolor.substring(mycolor.indexOf(",") + 1, mycolor.length)

var b = mycolor.substring(0, mycolor.length)

var RGB = new Array(256);
var k = 0;
var hex = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");

for (i = 0; i < 16; i++) {   
    for (j = 0; j < 16; j++) {       
        RGB[k] = hex[i] + hex[j];
        k++;
    }
}

mycolor = "#" + RGB[r] + RGB[g] + RGB[b];
}

document.forms['FORMNAVN'].TekstFarvekode.value=mycolor;
}
//-->
</SCRIPT>






<table>
<TD style="background-color: #FFAA55" onClick="farve(this.style.backgroundColor);">s</TD>
</table>




<form name="FORMNAVN">
<input type="text" name="TekstFarvekode">
<form>
Avatar billede roenving Novice
21. november 2003 - 20:14 #4
Tja, jeg kunne jo ik' li'e lade være:

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Simpel farve-konvertering</title>
<meta name="keywords" content="roenving;http://www.eksperten.dk/spm/430629">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="JavaScript">
// This script came from the Web-Development.Com JavaScript Site
// Located at http://www.web-development.com/
// Written by Mike Brittain (brittaim@lafayette.edu)
//
// Edited by theSurfer. Credits: to Mike Brittain.
// Simplified and adjusted by roenving 2003-11-21
function farve(mycolor){
if (mycolor.toLowerCase().substring(0,3)=="rgb") {
    mycolor = mycolor.substring(4);
    mycolor = mycolor.replace(/ /g,"");
    var r = mycolor.substring(0,mycolor.indexOf(","));
    mycolor = mycolor.substring(mycolor.indexOf(",") + 1);
    var g = mycolor.substring(0,mycolor.indexOf(","));
    var b = mycolor.substring(mycolor.indexOf(",") + 1);
    var hexN = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
    function hex(n){
        return hexN[Math.floor(n/16)]+hexN[n%16];
    }
    mycolor = "#" + hex(r) + hex(g) + hex(b);
}else if(!mycolor.indexOf('#')==0)mycolor="#" + mycolor;
if(!mycolor.match(/^\#[\da-f]{6}$/i)){
    mycolor="# Invalid color code";
}
return mycolor;
}
</script>
</head>
<body>
<form id="minForm" name="minForm">
Indskriv farvekode: <input id="minInput" name="minInput" type="text" value="Either rgb 000,000,000 or #000000" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="50"><br><br>
Hex-farvekode: <span id="hexFarveKode" style="font-family:monospace">#</span><br><br>
<button onclick="document.getElementById('hexFarveKode').innerHTML=farve(this.form.minInput.value);">Lav Hex-kode</button>
</form>
</body>
</html>
Avatar billede thesurfer Nybegynder
15. december 2003 - 17:08 #5
feedback..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester