Avatar billede codebase Praktikant
23. oktober 2001 - 15:38 Der er 2 kommentarer og
1 løsning

Points til jakobA

Takker for hjælpen med mit javascript.

For dem der ikke kender sagen, så har jeg sendt en mail via ekspertn til jakobA, med et spørgsmål.

Kort fortalt, havede jeg en funktion i javascript, som ikke virkede optimalt.

Jeg vidste at jakobA kunne hjælpe mig, derfor valgte jeg denne løsningsform.

_codeb@se.dk
Avatar billede jakoba Nybegynder
23. oktober 2001 - 15:53 #1
Beklager.
  Eksperten points kan kun bruges som betalig for \'offentlige\' spørgsmål. Dvs. både spørgsmål og svar skal være offentligt tilgængelige så andre kan kikke og lære af dem.

  Jeg vil lade dig om at beslutte om spørgsmål og svar her er for fortrolige til at offentliggøre.

mvh JakobA
Avatar billede codebase Praktikant
23. oktober 2001 - 15:58 #2
klart, det er rimligt at alle skal kulle lære af det.

Gammel kode:

function CA(){
    var frm = document.codebase;
    for (var i=0;i<frm.elements.length;i++)
    {
        var e = frm.elements[i];
        if ((e.name != \'allbox\') && (e.type==\'checkbox\'))
        {
            e.checked = frm.allbox.checked;
            if (frm.allbox.checked)
                hL(e);
            else
                dL(e);
        }
    }
}

function CCA(CB){
var frm = document.codebase;
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){
ie = document.all?1:0;
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 = \"\";
}




Ny kode:
// <!-- Minus AutoDato -->

var debugOn = true;
function debug( str ) {  // til debugging
    if ( debugOn ) debugOn = confirm( str );
}; //end debug( string )

function CA() {  // set/clear samtlige checkbokse
    var frme = document.codebase.elements;
  var newVal = frme[\'allbox\'].checked;
    for (var i=0; frme.length>i; i++) {
        if (  ( frme[i].type == \'checkbox\' )
        &&( frme[i].checked != newVal )
      ) {
      setCheckBox( frme[i], newVal );
        }
    }
}

function CAgroup( groupName ) { // set/clear hele denne gruppe
  var nameRe = new RegExp( \"^\"+groupName );
    var frme = document.codebase.elements;
  var newVal = frme[groupName+\"all\"].checked;
    for (var i=0; frme.length>i; i++) {
        if (  ( frme[i].type==\'checkbox\' )
        &&( nameRe.test( frme[i].name ) )
      ) {
      setCheckBox( frme[i], newVal );
        }
    }
  checkAll();
}; //end CAgroup( number )

function CCA(CB){  // set/clear individuel checkbox
  setCheckBox( CB, CB.checked );
  checkGroup(CB);
  checkAll();
}

function checkAll( ) {  // set/clear \'allbox\' checkbox
    var frme = document.codebase.elements;
    for (var i=0; frme.length>i; i++) {
        if (  ( frme[i].type == \'checkbox\' )
            &&( frme[i].name != \'allbox\' )
            &&( !frme[i].checked )
          ) break;
    }
    frme[\'allbox\'].checked = (i==frme.length)?true:false;
}; //end chackAll( )

function checkGroup( CB ) { // set/clear gruppens fælles checkbox
    var groupName = CB.name.substring(0,CB.name.indexOf(\"[\"));
    var nameRe = new RegExp( \"^\"+groupName+\"\\\\\\[\" );
      var frme = document.codebase.elements;
      for (var i=0; frme.length>i; i++) {
            if (  ( frme[i].type==\'checkbox\' )
            &&( nameRe.test( frme[i].name ) )
            &&( ! frme[i].checked )
          ) {
            setCheckBox( frme[groupName+\"all\"], false );
            return;
        }
        }
    setCheckBox( frme[groupName+\"all\"], true );
}; //end chackGroup( Checkbox object )

function setCheckBox( CB, newVal ) { // set/clear checkbox og style
    CB.checked = newVal;
    if (document.all) {
        while (CB.tagName!=\"TR\") CB=CB.parentElement;
    } else {
        while (CB.tagName!=\"TR\") CB=Cb.parentNode;
    }
    CB.className = (newVal)?\"H\":\"\";
}; //end setCheckBox( Checkbox object, boolean )

Takker jakobA, for hjælpen

_codeb@se.dk
Avatar billede jakoba Nybegynder
23. oktober 2001 - 19:37 #3
tak
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