21. juni 2004 - 14:49Der 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
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;
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>
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>
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.