Avatar billede weiland Nybegynder
21. juni 2004 - 14:49 Der er 11 kommentarer og
1 løsning

Script skal fungere med tre cifre

function ChangeHEXColor(color)
{
  with (document.MyForm)
  {
    for (i = 0; i < col_check.length; i++)
    {
      if (col_check[i].checked) {
     
        var field = eval('document.getElementById("Color'+i +'")')
        var cell  = eval('document.getElementById("Color_'+i +'")')
        field.value  = color;
        cell.bgColor = color;
     
      }
    }
  }
}

Fungerer i øjeblikket kun, når "i" er et enkelt ciffer. Jeg har brug for, at det skal fungere med tre cifre.
Jeg laver lige et konkret eksempel.. øjeblik
Avatar billede weiland Nybegynder
21. juni 2004 - 14:53 #1
<script language="javascript">

function ChangeHEXColor(color)
{
  with (document.MyForm)
  {
    for (i = 0; i < col_check.length; i++)
    {
      if (col_check[i].checked) {
     
        var field = eval('document.getElementById("Color'+i +'")')
        var cell  = eval('document.getElementById("Color_'+i +'")')
        field.value  = color;
        cell.bgColor = color;
     
      }
    }
  }
}
</script>

<input type=Radio name=col_check>Farve

<table border=0 cellpadding=0 cellspacing=0 align=right>
<tr>
<td id=Color_0 bgcolor=#333333></td>
</tr>
</table>
<input type=text maxlength=7 size=10 name=ColorRegularText value='#333333' id=Color0>

<table width="420" border="0" cellspacing="1" cellpadding="0">
      <tr>
        <td bgcolor=#000000><a href=java script:OnClick=ChangeHEXColor('#000000')><img src="../images/gif/spacer.gif" width="10" height="10" border="0"></a></td>
        <td bgcolor=#330000><a href=java script:OnClick=ChangeHEXColor('#330000')><img src="../images/gif/spacer.gif" width="10" height="10" border="0"></a></td>
</tr>
</table>
Avatar billede roenving Novice
21. juni 2004 - 15:04 #2
Har du brug for at der kan være mange celler, eller hvad skal tælleren i være til ?-)
Avatar billede weiland Nybegynder
21. juni 2004 - 15:08 #3
Undskyld at jeg ikke forklarer mig præcist :-)

hmm.. ja, jeg har brug for mange celler
altså at der er mange variable, som man skal kunne sætte farven på.
Avatar billede roenving Novice
21. juni 2004 - 15:21 #4
Er ikke sikker på, at jeg har forstået, men kig en gang:

<script type="text/javascript">
function ChangeHEXColor(color){
  var r = document.MyForm.col_check;
  for (i=0;r.length>i; i++){
    if (r[i].checked) {
      var field = document.getElementById('Color'+i);
      var cell  = document.getElementById('Color_'+i);
      field.value  = color;
      cell.bgColor = color;
   
    }
  }
}
</script>

<body>
<form name="MyForm">
<table border="0" cellpadding="0" cellspacing="0" align="">
<tr><td>
Farve <input type="radio" name="col_check"><input type="text" maxlength="7" size="10" name="ColorRegularText" value='#333333' id="Color0"></td>
<td>Farve <input type="radio" name="col_check"><input type="text" maxlength="7" size="10" name="ColorRegularText" value='#333333' id="Color1"></td></tr>

<tr>
<td id="Color_0" bgcolor="#333333">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td id="Color_1" bgcolor="#333333">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
</tr>
</table>

</form>
<table width="420" border="0" cellspacing="1" cellpadding="0">
      <tr>
        <td bgcolor="#000000"><a href="java script:ChangeHEXColor('#000000')"><img src="../images/gif/spacer.gif" width="10" height="10" border="0"></a></td>
        <td bgcolor="#330000"><a href="java script:ChangeHEXColor('#330000')"><img src="../images/gif/spacer.gif" width="10" height="10" border="0"></a></td>
</tr>
</table>
</body>
Avatar billede weiland Nybegynder
21. juni 2004 - 15:34 #5
Har lige testet i min side med id=101
så melder siden: "Null er null eller ikke et objekt"

Jeg har så mange af disse her:

Farve <input type="radio" name="col_check"><input type="text" maxlength="7" size="10" name="ColorRegularText" value='#333333' id="Color0"></td>
<td>Farve <input type="radio" name="col_check"><input type="text" maxlength="7" size="10" name="ColorRegularText" value='#333333' id="Color1"></td></tr>

....at jeg er nødt til at komme op i tre cifre.. altså fx

Farve <input type="radio" name="col_check"><input type="text" maxlength="7" size="10" name="ColorRegularText" value='#333333' id="Color101"></td>
<td>Farve <input type="radio" name="col_check"><input type="text" maxlength="7" size="10" name="ColorRegularText" value='#333333' id="Color101"></td></tr>

Jeg tester lige een gang til for en sikkerheds skyld...
Avatar billede roenving Novice
21. juni 2004 - 15:39 #6
Der er ikke specielle problemer med at have 2 eller 20 cifre i den slags konstruktioner ...

Du må have andre fejl, for index på din radio stiger bare derudaf ...

-- og en betydeligt slankere (og hurtigere udgave af scriptet !-)

<script type="text/javascript">
function ChangeHEXColor(color){
  var r = document.MyForm.col_check;
  for (i=0;r.length>i; i++){
    if (r[i].checked) {
      document.getElementById('Color'+i).value  = color;
      document.getElementById('Color_'+i).bgColor = color;
    }
  }
}
</script>
Avatar billede weiland Nybegynder
21. juni 2004 - 15:44 #7
den serie af radioknapper, som er på siden.. skal de alle være i rækkefølge startende med 0?
Avatar billede weiland Nybegynder
21. juni 2004 - 15:51 #8
det vil jeg nemlig mægtig gerne undgå! :-)
Avatar billede roenving Novice
21. juni 2004 - 16:07 #9
Hvis du ikke giver dem et id vil en serie checkboxe have et index, som altid starter med 0, da det er browserens interne tæller !-)

Men du kan da bare give dem et id og så henføre til det:

<script type="text/javascript">
function ChangeHEXColor(color){
  var r = document.MyForm.elements;
  for (i=0;r.length>i; i++){
    if (r[i].type=='radio'&&r[i].checked) {
      t = r[i].id.replace(/^radio_(\d+)$/,"$1");
      document.getElementById('Color'+t).value  = color;
      document.getElementById('Color_'+t).bgColor = color;
    }
  }
}
</script>

-- og så:

Farve <input type="radio" id="radio_101" name="col_check"><input type="text" maxlength="7" size="10" name="ColorRegularText" value='#333333' id="Color101">

-- og selvfølgelig også give den tilsvarende celle en id="Color_101" ...
Avatar billede weiland Nybegynder
21. juni 2004 - 16:17 #10
jamen, det er jo en drøm
et svar til mig og point til dig :-)
Avatar billede roenving Novice
21. juni 2004 - 16:26 #11
Velbekomme '-)
Avatar billede roenving Novice
21. juni 2004 - 16:41 #12
-- og tak for point ;~}
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