Avatar billede torbenmelander Nybegynder
15. november 2001 - 10:26 Der er 83 kommentarer og
2 løsninger

Ændre linies farve ved kryds i checkbox (ligesom hotmail)

Jeg er ikke så god til javascript endnu .. men jeg ville gerne lave en funktion der ændrer liniens farve ligesom på hotmail .. den skal virke i IE4+ og NS4+

Kan nogen hjælpe med det ???
Avatar billede Slettet bruger
15. november 2001 - 10:27 #1
Kig ind på hotmail og lur dem tricket af....
Avatar billede torbenmelander Nybegynder
15. november 2001 - 10:33 #2
Ja, det kunne man ...
Avatar billede olebole Juniormester
15. november 2001 - 10:45 #3
<ole>
...eller du kunne forklare mere præcist, hvad du vil lave.
Ikke alle har en HotMail-adresse - og de, der ikke har, opretter nok ikke en for at hjælpe dig  ;o)
/mvh
</bole>
Avatar billede torbenmelander Nybegynder
15. november 2001 - 10:46 #4
Jeg kan ikke helt gennemskue det ?? Kan du ??
Avatar billede torbenmelander Nybegynder
15. november 2001 - 10:53 #5
olebole > se denne adresse:

www.melanders.dk/ny.html

Når man klikker i en af checkbox\'ne skal linien markeres med en anden farve .. og når man fraklikker den igen skal den være hvid igen ..
Avatar billede nikolajdu Nybegynder
15. november 2001 - 11:04 #6
<html>
<head>
    <title>Untitled</title>
   
    <script>
   
    function skift(hvad,tjekket){
   
    if (tjekket.checked==true){
   
    document.getElementById(hvad).style.backgroundColor=\"#dddddd\"
    }else{
    document.getElementById(hvad).style.backgroundColor=\"#999999\"
        }
    }
   
   
    </script>
</head>

<body>
<form name=\"f\">


<table cellspacing=\"2\" cellpadding=\"2\" border=\"0\">
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie1\"><input type=\"checkbox\" name=\"box1\" onClick=\"skift(\'linie1\',this)\"></td>
</tr>
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie2\"><input type=\"checkbox\" name=\"box2\" onClick=\"skift(\'linie2\',this)\"></td>
</tr>
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie3\"><input type=\"checkbox\" name=\"box3\" onClick=\"skift(\'linie3\',this)\"></td>
</tr>
</table>

</form>


</body>
</html>
Avatar billede torbenmelander Nybegynder
15. november 2001 - 11:09 #7
nikolajdu .. feeddtt ;-)

Jeg har bare det problem at når jeg vil vælge alle med en anden checkbox så virker det ikke .. hvis du kan bikse kode sammen til det vil jeg gi\' 30 point ekstra ..

Virker det forresten på alle browsere (IE og NS) fra version 4 ??
Avatar billede nikolajdu Nybegynder
15. november 2001 - 11:10 #8
Det virker ikke i NS 4.x
Avatar billede nikolajdu Nybegynder
15. november 2001 - 11:13 #9
Ej heller lige nu i IE 4.
Avatar billede torbenmelander Nybegynder
15. november 2001 - 11:14 #10
Kan du få det til det ??
Avatar billede olebole Juniormester
15. november 2001 - 11:14 #11
Bruger man div\'s under hinanden - i stedet for tabelrækker - kan det gøres kompatibelt med NS4.X
/mvh
Avatar billede nikolajdu Nybegynder
15. november 2001 - 11:15 #12
Bikser lige med det.
Avatar billede olebole Juniormester
15. november 2001 - 11:16 #13
...men jeg erkender, det giver torbenmelander en række andre udfordringer ....positionering og den slags  ;)
Avatar billede olebole Juniormester
15. november 2001 - 11:18 #14
Hvis du laver det, Nikolaj - så skal jeg nok skrive: \"Gør, som nikolajdu skriver...\"!
Det går jo ikke, du allerede kommer ud af den nyvundne vane  =oD
/mvh
Avatar billede nute Nybegynder
15. november 2001 - 11:28 #15
tja .... denne fungerer i NS4+ og IE5+

<html>
<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">
<!--
ns  = (document.layers) ? true : false;
ns6 = (document.getElementById) ? true : false;
ie  = (document.all) ? true : false;
var backCol = \"#ffffff\";

function changeColor( tdName, color ){
  if( ie ){
      nowCol = document.all[tdName].style.backgroundColor;
        document.all[tdName].style.backgroundColor= (nowCol==color)?backCol:color;
        document.all[\"div\" + tdName ].style.backgroundColor=(nowCol==color)?backCol:color;
    } else if( ns ){
      nowCol = document.layers[\'div\' + tdName].document.bgColor;
      document.layers[\'div\' + tdName].document.bgColor = (nowCol==color)?backCol:color;
    } else if( ns6 ){
      nowCol = document.getElementById(tdName).style.backgroundColor;
      document.getElementById(tdName).style.backgroundColor = (nowCol==color)?backCol:color;
        document.getElementById(\"div\" + tdName).style.backgroundColor=(nowCol==color)?backCol:color;
    }
}
//-->
</SCRIPT>
<body>
<table border=\"1\">
<tr>
    <td id=\"One\" width=\"50\" height=\"20\"><div name=\"divOne\" id=\"divOne\" style=\"position:relative;top:0px;left:0px;clip:rect(0,50,20,0);background-color:#ffffff;layer-background-color:#ffffff;\"><input type=\"checkbox\" id=\"ch1\" name=\"ch1\" onclick=\"changeColor(\'One\', \'#ff0000\');\"> Test </div></td>
</tr>
<tr>
    <td id=\"Two\" width=\"50\" height=\"20\"><div name=\"divTwo\" id=\"divTwo\" style=\"position:relative;top:0px;left:0px;clip:rect(0,50,20,0);background-color:#ffffff;layer-background-color:#ffffff;\"><input type=\"checkbox\" id=\"ch2\" name=\"ch2\" onclick=\"changeColor(\'Two\', \'#ffff00\');\"> Test </div></td>
</tr>
</table><br>
</body>
</html>

Avatar billede nute Nybegynder
15. november 2001 - 11:33 #16
gov...nei, det gjør den faktisk ikke....sorry,..
Avatar billede torbenmelander Nybegynder
15. november 2001 - 11:33 #17
Jeg vil helst lave det med tabelrækker :)
Avatar billede olebole Juniormester
15. november 2001 - 11:35 #18
Jamen, du kan ikke lave det med tabelrækker, hvis det skal fungere i NS4.X.
/mvh
Avatar billede nute Nybegynder
15. november 2001 - 11:35 #19
du kan iallefall ikke lage det, så det fungerer i ns4, uten bruk av layers...

/nute
Avatar billede Slettet bruger
15. november 2001 - 11:41 #20
Her er noget af det fra hotmail, men der er temmelig meget kode, det hele findes i http://lw11fd.law11.hotmail.msn.com/cgi-bin/dasp/EN/hotmail___6.js

js scriptet:

function CCA(CB){
if (CB.checked)
hL(CB);
else
dL(CB);
var TB=TO=0;
for (var i=0;i<frm.elements.length;i++)
{
var e = frm.elements[i];
if ((e.name != \'allbox\') && (e.type==\'checkbox\'))
{
TB++;
if (e.checked)
TO++;
}
}
if (TO==TB)
frm.allbox.checked=true;
else
frm.allbox.checked=false;
}

function hL(E){
if (ie)
{
while (E.tagName!=\"TR\")
{E=E.parentElement;}
}
else
{
while (E.tagName!=\"TR\")
{E=E.parentNode;}
}
E.className = \"H\";
}
function dL(E){
if (ie)
{
while (E.tagName!=\"TR\")
{E=E.parentElement;}
}
else
{
while (E.tagName!=\"TR\")
{E=E.parentNode;}
}
E.className = \"\";
}

<input type=\"checkbox\" name=\"MSG1005232073.5\" onClick=\"CCA(this);\">


Ovenstående virker ikke da der mangler en masse ting, men blot et hint om hvor man bør kigge :)
Avatar billede olebole Juniormester
15. november 2001 - 11:42 #21
...men det kommer stadig ikke til at fungere i NS4.X
/mvh
Avatar billede nute Nybegynder
15. november 2001 - 11:46 #22
det eneste som gjør at mitt ikke fungerer i NS4x, er

1) jeg har ikke puttet checkboxene inn i et formular
2) selv om jeg gjør det, så vil de ikke vises :-(

olebole >> har du en forklaring på det ? eller se du noe galt med min kode (hvis vi antar at tabellen er omsluttet av form-tags) ?
Avatar billede torbenmelander Nybegynder
15. november 2001 - 11:51 #23
Kan man lave det så det virker på IE5+ og NS5+, men at den bare ikke gør andet end at sætte et kryds hvis man har IE4 og NS4 .. ikke nogle fejlmeddelser ??
Avatar billede nikolajdu Nybegynder
15. november 2001 - 11:54 #24
Du kan bruge den her:

<script>
   
    ie5ns6 =(document.getElementById)? true:false
   
    function skift(hvad,tjekket){
   
    if (ie5ns6 && tjekket.checked==true){
       
    document.getElementById(hvad).style.backgroundColor=\"#dddddd\"
    }else{
    document.getElementById(hvad).style.backgroundColor=\"#999999\"
        }
    }
   
   
    </script>
Avatar billede torbenmelander Nybegynder
15. november 2001 - 11:57 #25
Hvad med den der markere alle sammen .. nogen løsning til den ??

Jeg har denne kode:

function CheckAll()
{
    for (var i=0;i<document.TW_DEFAULT_FORM.elements.length;i++)
    {
        var e = document.TW_DEFAULT_FORM.elements[i];
        if ((e.name != \'TW_DEFAULT_CHECKALL\') && (e.type==\'checkbox\'))
        e.checked = document.TW_DEFAULT_FORM.TW_DEFAULT_CHECKALL.checked;
    }
}

Kan den tilpasses ??
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:01 #26
<html>
<head>
    <title>Untitled</title>
   
    <script>
   
    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false
    ie5 =(document.getElementById)? true:false
   
    function marker(box){
   
    if (box.checked==true){
   
        for (i=0;i<4;i++) eval(\'document.f.box\'+i+\'.checked=true;\');
    }else
    for (i=0;i<4;i++) eval(\'document.f.box\'+i+\'.checked=false;\');
    }
   
   
    function skift(hvad,tjekket){
   
    if (ie5 && tjekket.checked==true){
       
    document.getElementById(hvad).style.backgroundColor=\"#dddddd\"
    }else{
    document.getElementById(hvad).style.backgroundColor=\"#999999\"
        }
    }
   
   
    </script>
</head>

<body>
<form name=\"f\">


<table cellspacing=\"2\" cellpadding=\"2\" border=\"0\">
<tr>
    <td tyle=\"display:block;background-color:#999999;width:200\" id=\"linie0\">
    <input type=\"checkbox\" onClick=\"marker(this)\" name=\"box0\" onFocus=\"this.blur()\">markér alle
    </td>
</tr>
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie1\"><input type=\"checkbox\" name=\"box1\" onClick=\"skift(\'linie1\',this)\" onFocus=\"this.blur()\"></td>
</tr>
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie2\"><input type=\"checkbox\" name=\"box2\" onClick=\"skift(\'linie2\',this)\" onFocus=\"this.blur()\"></td>
</tr>
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie3\"><input type=\"checkbox\" name=\"box3\" onClick=\"skift(\'linie3\',this)\" onFocus=\"this.blur()\"></td>
</tr>
</table>

</form>


</body>
</html>
Avatar billede torbenmelander Nybegynder
15. november 2001 - 12:06 #27
nikolajdu > virker den ikke kun hvis man ved hvor mange linier der er .. Jeg tænker på 4-tallet

  if (box.checked==true){
   
        for (i=0;i<4;i++) eval(\'document.f.box\'+i+\'.checked=true;\');
    }else
    for (i=0;i<4;i++) eval(\'document.f.box\'+i+\'.checked=false;\');
    }
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:10 #28
<html>
<head>
    <title>Untitled</title>
   
    <script>
   
    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false
    ie5 =(document.getElementById)? true:false
   
    temp = 0
   
    function init(){
   
    for (i=0;i<document.f.elements.length;i++){
    if (document.f.elements.typeOf=\"checkbox\"){
    temp++
    }
    hvorMangeBoxe = temp
    }
   
    }
   
    function marker(box){
   
    if (box.checked==true){
   
        for (i=0;i<hvorMangeBoxe;i++) eval(\'document.f.box\'+i+\'.checked=true;\');
    }else{
    for (i=0;i<hvorMangeBoxe;i++) eval(\'document.f.box\'+i+\'.checked=false;\');
    }
   
    if (ie5&&box.checked==true){
       
        for (i=0;i<hvorMangeBoxe;i++) eval(\"document.getElementById(\'linie\"+i+\"\').style.backgroundColor=\'#dddddd\';\");
}else{

for (i=0;i<hvorMangeBoxe;i++) eval(\"document.getElementById(\'linie\"+i+\"\').style.backgroundColor=\'#999999\';\");

}
   
   
    }
   
   
    function skift(hvad,tjekket){
   
    if (ie5 && tjekket.checked==true){
       
    document.getElementById(hvad).style.backgroundColor=\"#dddddd\"
    }else{
    document.getElementById(hvad).style.backgroundColor=\"#999999\"
        }
    }
   
   
    </script>
</head>

<body onLoad=\"init()\">
<form name=\"f\">


<table cellspacing=\"2\" cellpadding=\"2\" border=\"0\">
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie0\">
    <input type=\"checkbox\" onClick=\"marker(this)\" name=\"box0\" onFocus=\"this.blur()\">markér alle</td>
</tr>
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie1\"><input type=\"checkbox\" name=\"box1\" onClick=\"skift(\'linie1\',this)\" onFocus=\"this.blur()\"></td>
</tr>
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie2\"><input type=\"checkbox\" name=\"box2\" onClick=\"skift(\'linie2\',this)\" onFocus=\"this.blur()\"></td>
</tr>
<tr>
    <td style=\"display:block;background-color:#999999;width:200\" id=\"linie3\"><input type=\"checkbox\" name=\"box3\" onClick=\"skift(\'linie3\',this)\" onFocus=\"this.blur()\"></td>
</tr>
</table>

</form>


</body>
</html>
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:11 #29
Det var sgu da besværligt det her *LOOOL*
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:17 #30
Det er så vigtigt at alle dine tabelrows hedder fra id=\"linie0\" og op og tilsvarende med boxene id=\"box0\" og bare der u´a´
Avatar billede torbenmelander Nybegynder
15. november 2001 - 12:19 #31
okay, hvordan skal vi fordele pointne... jeg vil gi\' 100 ??
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:20 #32
Hvis vi skal gøre det hele lidt mere overskueligt kan du lave style i header i stedet og give TD en class i stedet.

ang.: pointene kan vi vel bare fordele dem.

<html>
<head>
    <title>Untitled</title>
   
    <style>
   
    .tdClass {display:block;background-color:#999999;width:200}
   
    </style>
   
    <script>
   
    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false
    ie5 =(document.getElementById)? true:false
   
    temp = 0
   
    function init(){
   
    for (i=0;i<document.f.elements.length;i++){
    if (document.f.elements.typeOf=\"checkbox\"){
    temp++
    }
    hvorMangeBoxe = temp
    }
   
    }
   
    function marker(box){
   
    if (box.checked==true){
   
        for (i=0;i<hvorMangeBoxe;i++) eval(\'document.f.box\'+i+\'.checked=true;\');
    }else{
    for (i=0;i<hvorMangeBoxe;i++) eval(\'document.f.box\'+i+\'.checked=false;\');
    }
   
    if (ie5&&box.checked==true){
       
        for (i=0;i<hvorMangeBoxe;i++) eval(\"document.getElementById(\'linie\"+i+\"\').style.backgroundColor=\'#dddddd\';\");
}else{

for (i=0;i<hvorMangeBoxe;i++) eval(\"document.getElementById(\'linie\"+i+\"\').style.backgroundColor=\'#999999\';\");

}
   
   
    }
   
   
    function skift(hvad,tjekket){
   
    if (ie5 && tjekket.checked==true){
       
    document.getElementById(hvad).style.backgroundColor=\"#dddddd\"
    }else{
    document.getElementById(hvad).style.backgroundColor=\"#999999\"
        }
    }
   
   
    </script>
</head>

<body onLoad=\"init()\">
<form name=\"f\">


<table cellspacing=\"2\" cellpadding=\"2\" border=\"0\">
<tr>
    <td style=\"\" id=\"linie0\" class=\"tdClass\">
    <input type=\"checkbox\" onClick=\"marker(this)\" name=\"box0\" onFocus=\"this.blur()\">markér alle</td>
</tr>
<tr>
    <td class=\"tdClass\" id=\"linie1\"><input type=\"checkbox\" name=\"box1\" onClick=\"skift(\'linie1\',this)\" onFocus=\"this.blur()\"></td>
</tr>
<tr>
    <td class=\"tdClass\" id=\"linie2\"><input type=\"checkbox\" name=\"box2\" onClick=\"skift(\'linie2\',this)\" onFocus=\"this.blur()\"></td>
</tr>
<tr>
    <td class=\"tdClass\" id=\"linie3\"><input type=\"checkbox\" name=\"box3\" onClick=\"skift(\'linie3\',this)\" onFocus=\"this.blur()\"></td>
</tr>
</table>

</form>


</body>
</html>
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:21 #33
ikke fordele dem, men dele dem...
Avatar billede torbenmelander Nybegynder
15. november 2001 - 12:25 #34
;-)

Det bliver nikolajdu\'s løsning jeg bruger mest af .. så han skal nok have mest... men indtil nu er det kun nute og nukolaj der har svaret .. kom med nogle bud på hvordan pointne skal deles ;-)
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:27 #35
Kan vi ikke bare dele dem :-)
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:30 #36
jeg har hørt mange versioner af mit navn, men Nukolaj er vist ny.

chokolaj, nokolaj, nego, nico blandt de værste. *LOL*
Avatar billede torbenmelander Nybegynder
15. november 2001 - 12:37 #37
50-50 ??
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:38 #38
fino fino :-)
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:40 #39
Du kan i øvrigt sagtens fjerne disse to linie, da vi alligevel ikke bruger dem. tjekket går kun på getElementbyId, der understøttes af IE 5 og frem og NS 6.x

    ns4 = (document.layers)? true:false
    ie4 = (document.all)? true:false
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:44 #40
tak for point :-)
Avatar billede nute Nybegynder
15. november 2001 - 12:47 #41
takker :)
Avatar billede torbenmelander Nybegynder
15. november 2001 - 12:56 #42
Selv tak og mange tak for hjælpen ;-)
Avatar billede nikolajdu Nybegynder
15. november 2001 - 12:58 #43
puha - troede lige du havde flere spørgsmål ;-)
Avatar billede torbenmelander Nybegynder
15. november 2001 - 15:29 #44
hehe :-)

Hvis I vil se resultatet:

www.melanders.dk/ny.html

Jeg synes selv det er blevet meget godt .. så tak for jeres indsats :-)
Avatar billede nikolajdu Nybegynder
15. november 2001 - 15:32 #45
Jeg synes sørme også det er pænt ;-)
Avatar billede nute Nybegynder
15. november 2001 - 15:33 #46
den ser fin ut :-) (bortsett fra i NS4.08...du burde ta en kikk selv ;-) )

/nute
Avatar billede nikolajdu Nybegynder
15. november 2001 - 15:35 #47
ja sgu, der er vist smuttet noget for torben der. :-)
Avatar billede torbenmelander Nybegynder
15. november 2001 - 15:37 #48
Har ikke NS4.08 .. send evt. screenshot til eksperten@melanders.dk
Avatar billede nikolajdu Nybegynder
15. november 2001 - 15:41 #49
Avatar billede torbenmelander Nybegynder
15. november 2001 - 15:41 #50
Jeg kan heller ikke slette mere .. før havde alle mine checkboxs et navn og når jeg submittede kunne jeg så spilte en streng med tal (1,2,3) og slette de beskeder.

Hvad gør jeg nu ?
Avatar billede nikolajdu Nybegynder
15. november 2001 - 15:42 #51
netscape 4.73
Avatar billede nikolajdu Nybegynder
15. november 2001 - 15:44 #52
Nu skulle den være der.
Avatar billede torbenmelander Nybegynder
15. november 2001 - 15:46 #53
Nu skulle den være der.  ???

Det ser jo ikke så godt ud !!
Avatar billede nikolajdu Nybegynder
15. november 2001 - 15:48 #54
næh, men du bad om et screenshot.

Jeg er ude for nogle timer :-(
Avatar billede torbenmelander Nybegynder
15. november 2001 - 15:50 #55
Kunne man skrive tallet i feltes value og så chekke på det i javascriptet .. og så kalde id det samme ..

Nå jeg har fri nu .. vender tilbage omkring 17:30 når jeg er hjemme .. Håber I lige gider hjælpe mig færdig der :-)
Avatar billede torbenmelander Nybegynder
15. november 2001 - 17:39 #56
Da jeg sagde at i kunne sende screenshots til eksperten@melanders.dk mente jeg ikke 6 MB store filer .. det var det noget der kunne få min Outlook Express til at gå ned .. men tak alligevel .. en anden kunne man bruge komprimereing ;-)
Avatar billede nute Nybegynder
15. november 2001 - 19:30 #57
Hov...det må du unnskylde...jeg foretok kun en \"screenshot/paste\" operasjon uten å sjekke størrelsen på filen jeg sendte :-|
Avatar billede torbenmelander Nybegynder
15. november 2001 - 21:08 #58
Det går nok .. det tager bare lidt tid på en 56k forbindelse ;-)
Avatar billede torbenmelander Nybegynder
15. november 2001 - 21:11 #59
Jeg vil gerne have ændret koden så alle checkboksene har samme id og name .. (det skal jeg bruge i min asp-kode)

Kan det lade sig gøre ?? Jeg vil gerne give point for det !!!
Avatar billede nikolajdu Nybegynder
15. november 2001 - 21:19 #60
Torben - Det må blive i morgen fra min side :-)
Avatar billede torbenmelander Nybegynder
15. november 2001 - 21:21 #61
Ok, tror jeg har fundet en løsning .. så kan du el/og nute måske optimere den :-)
Avatar billede torbenmelander Nybegynder
15. november 2001 - 21:38 #62
Jeg lavede javasriptet om så jeg ikke behøver at bruge BODYens ONLOAD da det er mest praktisk for mig ... Her er koden til javascriptet:

<SCRIPT>
<!--

ie5 =(document.getElementById)? true:false

function CheckAll(box){
  for (var i=0;i<document.TW_DEFAULT_FORM.elements.length;i++){
    var e = document.TW_DEFAULT_FORM.elements[i];
    if ((e.name != \'TW_DEFAULT_CHECKBOX_0\') && (e.type==\'checkbox\')){
      if (document.TW_DEFAULT_FORM.TW_DEFAULT_CHECKBOX_0.checked==true){
        e.checked=true;
      }else{
        e.checked=false;
      }
      if (ie5){
        if (document.TW_DEFAULT_FORM.TW_DEFAULT_CHECKBOX_0.checked==true){
          document.getElementById(\'line\'+e.value).style.backgroundColor=\'#FFFDAC\';
        }else{
          document.getElementById(\'line\'+e.value).style.backgroundColor=\'#FFFFFF\';
        }
      }   
    }
  }
}
   
function Check(e,line){
  if (ie5==true){
    if (e.checked==true){
      document.getElementById(line).style.backgroundColor=\"#FFFDAC\"
    }else{
      document.getElementById(line).style.backgroundColor=\"#FFFFFF\"
    }
  }
}
 
//-->
</SCRIPT>

Det kunne sikkert forbedres en del (nu er javascript ikke lige det jeg har mest erfaring med, den er næsten lig nul). Jeg håber at I gider kikke på det.

HTML-koden ser nu således ud (jeg har ændret koden til TR fra TD .. og alle checkbokse har samme ID) ..

  <TR BGCOLOR=\"#FFFFFF\" ID=\"line1\">
    <TD><A HREF=\"view.asp?msg=1\"><IMG border=\"0\" height=\"18\" hspace=\"5\" src=\"/images/mail3.gif\" width=\"20\"></A>&nbsp;</TD>
    <TD><INPUT TYPE=\"checkbox\" NAME=\"TW_DEFAULT_SELECT\" ID=\"TW_DEFAULT_SELECT\" VALUE=\"1\" ONCLICK=\"Check(this,\'line1\')\" ONFOCUS=\"this.blur()\"></TD>
    <TD ALIGN=\"left\"><A HREF=\"view.asp?msg=1\">Eksperten.dk</A>&nbsp;</TD>
    <TD ALIGN=\"left\">Eksperten.dk : Win.95/98 : Ny harddisk ikke accepteret af WIN98&nbsp;</TD>
    <TD ALIGN=\"left\"><NOBR>15 November</NOBR>&nbsp;</TD>
    <TD ALIGN=\"right\"><NOBR>1 KB</NOBR>&nbsp;</TD>
  </TR>

Glæder mig til at høre fra jer idag el. imorgen ;-)
Avatar billede nute Nybegynder
16. november 2001 - 08:56 #63
det er da ikke hensiktsmessig å gi alle dine checkboxes samme navn ?!
Avatar billede torbenmelander Nybegynder
16. november 2001 - 09:13 #64
hvorfor ikke .. når jeg submitter formen kan jeg bruge denne asp-kode til at se værdien for alle checkboxe:

If Request.Form(\"TW_DEFAULT_SUBMIT\") <> \"\" Then
  If Request.Form(\"TW_DEFAULT_SELECT\") <> \"\" Then
      myString = Request.Form(\"TW_DEFAULT_SELECT\")
      myArray = Split(myString,\", \")

      For Each myItem in myArray
        pop3.DeleteSingleMessage myItem
      Next

    Response.Redirect(\"default.asp\")
  End If
End If

da de afkrydsede bokses value bliver adskildt af komma (1,5,6,7)

Funktionenen CheckAll() behøver ikke have parameteren box da jeg ikke bruger den .. så den har jeg fjernet .. Andre forslag til forbedringer ??
Avatar billede nikolajdu Nybegynder
16. november 2001 - 10:55 #65
psst psst. NS 4.x er slet ikke glad for at bruge underscore _ i navn, du bliver nok nødt til at lave dem om. Personligt synes jeg også det ser rodet ud med dine store bogstaver, men hver sin smag.

I selve ordet ID ligger det at det er unikt og så skal de selvfølgelig have forskellige navne. Du skal være glad for Ole ikke ser dine boxe have samme ID, så havde du oplevet hans speciale - Nepalesiske cykelslangetæsk.

Lav din ASP om så den passer i idéen med den version jeg havde lavet. Der havde alle boxe et unikt navn. Det kjan godt være du ikke kan se hvorfor nu, men hvorfor lave fejl fra starten af?? ;-)

/Nikolaj
Avatar billede torbenmelander Nybegynder
16. november 2001 - 11:03 #66
nikolajdu > Kan din ikke laves så den ikke behøver loades i ONLOAD ??

Jeg vil nemlig gerne inkludere den efter at BODY er startet :-)

Så må jeg vel igang med ASP-koden ;-)
Avatar billede nute Nybegynder
16. november 2001 - 11:04 #67
GRRRRRR !!!!!!!!!!

jeg er PISSETRÆT av at eksperten spiser mine innlegg noen ganger...spesielt når jeg har brukt litt tid på å skrive dem. Well her kommer kun et sammendrag  av det som forsvant:

det er ikke god kodeskikk å navngi flere elementer med samme navn. Man behøver ikke tenke lenger enn å forestille seg en skoleklasse med 30 elever som har samme navn...litt vanskelig å holde styr på ?!

underscores bør fjernes, benytt heller en kombinasjon av små og store bokstaver. Det er fullstendig normalt...kall alle dine checkboxes

twDefaultCheckbox

etterfulgt av et ID:

twDefaultCheckbox21

deretter kan du skrive om din metode til:

function CheckAll(box){
  for (var i=0;i<document.TW_DEFAULT_FORM.elements.length;i++){
    var e = document.TW_DEFAULT_FORM.elements[i];
    if (( e.name.indexOf(\'twDefaultCheckbox\') > 0 ) && (e.type==\'checkbox\')){
      if ( e.checked==true){
        e.checked=true;
                ie5?document.getElementById(\'line\'+e.value).style.backgroundColor=\'#FFFDAC\':void(0);
      }else{
        e.checked=false;
                ie5?document.getElementById(\'line\'+e.value).style.backgroundColor=\'#FFFFFF\':void(0);
      } 
    }
  }
}

/nute
Avatar billede torbenmelander Nybegynder
16. november 2001 - 11:08 #68
nute > fedt, så behøver jeg ikke bruger en ONLOAD :-)
Avatar billede torbenmelander Nybegynder
16. november 2001 - 11:15 #69
nute > den der e.name.indexOf(\'twDefaultCheckbox\') .. Hvad gør den .. Siger den at den skal tage alle der begynder med twDefaultCheckbox unanset hvilket nummer .. og hvis den begynder med noget andet skal den slet ikke tages ??
Avatar billede nute Nybegynder
16. november 2001 - 11:17 #70
yup...
Avatar billede torbenmelander Nybegynder
16. november 2001 - 11:26 #71
Jeg synes ikke rigtig det virker :-(

www.melanders.dk/ny.html

Så vidt jeg kan se bestemmer du ikke hvilken boks indstillingen skal sættes efter ...

Kan du el. niko... løse det?
Avatar billede nute Nybegynder
16. november 2001 - 11:32 #72
for det første...hvis du ser på dine checboxer, så vil du se at ID ikke er lik NAME (kikk i kildekoden etter at siden er generert). Du mangler bare å fjerne et feilplassert asp-end tag...

for det andre...så har jeg jo selvfølgelig gjort en liten feil :-(

bytt ut denne linje:

if (( e.name.indexOf(\'twDefaultCheckbox\') > 0 ) && (e.type==\'checkbox\')){

med denne:

if (( e.name.indexOf(\'twDefaultCheckbox\') > -1 ) && (e.type==\'checkbox\')){

så fungerer det :-)

/nute
Avatar billede torbenmelander Nybegynder
16. november 2001 - 11:36 #73
ups, fandt den også lige selv

prøver lige ...
Avatar billede torbenmelander Nybegynder
16. november 2001 - 11:38 #74
desværre ikke :-(

www.melanders.dk/ny.html
Avatar billede torbenmelander Nybegynder
16. november 2001 - 11:41 #75
Tror selv jeg fandt fejlen:

I den linie hvor jeg lavede checkboxen kaldte jeg ikke CheckAll() med nogen parametere. Nu sender jeg this med ..

Så skal linien:

      if ( e.checked==true){

bare rettes til:

      if ( box.checked==true){

Så ser det ud til at virke ;-)
Avatar billede torbenmelander Nybegynder
16. november 2001 - 11:45 #76
Så er det bare ASP-koden ... hvad gør jeg ??
Avatar billede nute Nybegynder
16. november 2001 - 11:46 #77
nei, det gjør det desverre ikke....

*DENNE* derimot fungerer :-D

function CheckAll(){
  var checkVal = document.twDefaultForm.twDefaultCheckAll.checked;
  var checkCol = checkVal?\'#FFFDAC\':\'#FFFFFF\';
 
  for (var i=0;i<document.twDefaultForm.elements.length;i++){
    var e = document.twDefaultForm.elements[i];
    if ( ( e.name.indexOf(\'twDefaultCheckbox\') > -1 ) && (e.type==\'checkbox\')){
      e.checked=checkVal;
      ie5?document.getElementById(\'line\'+e.value).style.backgroundColor=checkCol:void(0);
    } 
  }
}

den er optimert enda litt, og gjort litt penere...

(håper vi er ved å nå en ende på denne thread ;-) )

/nute
Avatar billede torbenmelander Nybegynder
16. november 2001 - 11:59 #78
Det virker godt ;-)

Ved i hvordan jeg laver ASP-koden ... Eller skal jeg oprette et andet spørgsmål ???

Vil i have flere point ??
Avatar billede nute Nybegynder
16. november 2001 - 12:19 #79
tja...siden dette er et javascript forum, så skal man vel strengt tatt kun poste relevante spørsmål her inne...jeg foreslår at du oppretter et nytt...

om vi vil ha flere poeng ?? nææ...for min del er det ok, selve koden var jo ikke s¨å vanskelig...vi skulle bare gjennomgå den etpar ganger for å få den til å gjøre det vi trodde vi gjorde :-)
Avatar billede torbenmelander Nybegynder
16. november 2001 - 14:32 #80
Jeg oprette et andet spørgsmål til ASP-delen .. og nu virker det bare :-)

Se evt. www.melanders.dk/ny.html

Jeg har et sidste (jeg mener det den her gang ;-)) spørgsmål: Hvis jeg ville lave en knap som markere alle checkbokse istedet for at bruge en anden checkboks, hvad gør jeg så ??
Avatar billede nute Nybegynder
16. november 2001 - 14:38 #81
Simpelt...bytt  ut denne :

<INPUT TYPE=\"checkbox\" NAME=\"TW_DEFAULT_SELECT\" ID=\"TW_DEFAULT_SELECT\" VALUE=\"1\" ONCLICK=\"Check(this,\'line1\')\" ONFOCUS=\"this.blur()\">

med denne:

<img src=\"dittbilde\" ONCLICK=\"Check(this,\'line1\')\" ONFOCUS=\"this.blur()\">

meeeen...så er man nødt til å snyte litt i ditt script:

var checkVal = false; // ny variabel

function CheckAll(){
  checkVal = !checkVal;
  var checkCol = checkVal?\'#FFFDAC\':\'#FFFFFF\';
 
  for (var i=0;i<document.twDefaultForm.elements.length;i++){
    var e = document.twDefaultForm.elements[i];
    if ( ( e.name.indexOf(\'twDefaultCheckbox\') > -1 ) && (e.type==\'checkbox\')){
      e.checked=checkVal;
      ie5?document.getElementById(\'line\'+e.value).style.backgroundColor=checkCol:void(0);
    } 
  }
}

(( kan du bruke det jeg postet i den andre thread ?? om asp ))

/nute


Avatar billede nute Nybegynder
16. november 2001 - 14:42 #82
hov...jeg trodde du spurte om å lage dine checkbox om til bilde...det var jo feil...hvis du vil lage en knapp kan du bare gjøre:

<input type=\"button\" ONCLICK=\"Check(this,\'line1\')\" ONFOCUS=\"this.blur()\" valur=\"marker alle\">

/nute
Avatar billede torbenmelander Nybegynder
16. november 2001 - 14:44 #83
Jeg vil lave en knap til at markere alle ;-)
Avatar billede torbenmelander Nybegynder
16. november 2001 - 14:45 #84
Men det med billedet var måske også en god ide ;-)
Avatar billede torbenmelander Nybegynder
19. november 2001 - 20:49 #85
Glem det, jeg har fundet ud af det ..

Tak for al jeres hjælp .. jeg tror jeg er HELT færdig nu ..

Jeg håber at jeg kan hjælpe jer en anden gang :-)
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