Avatar billede torbenmelander Nybegynder
10. december 2001 - 21:06 Der er 15 kommentarer og
1 løsning

Invertere og markere alle

Hej \"eksperter\",

Jeg skal bruge en funktion der tager alle checkboks på siden undtagen
twUploadCheckAll og som invertere markeringerne på dem ligesom denne her der vælger de modsatte i en <SELECT>:

  for( i=0; i<document.twUploadForm.twSendAttachments.options.length; i++ ){

document.twUploadForm.twSendAttachments.options[i].selected=!document.twUplo
adForm.twSendAttachments.options[i].selected;
  }

Jeg har et andet problem med en funktion nute og nikolajdu lavede til mig:

function CheckAll(){
  var checkVal = document.twUploadForm.twUploadCheckAll.checked;
  var checkCol = checkVal?\'#FCF880\':\'#FFFDAC\';

  for (var i=0;i<document.twUploadForm.elements.length;i++){
    var e = document.twUploadForm.elements[i];
    if ( ( e.name.indexOf(\'twUploadCheckbox\') > -1 ) &&
(e.type==\'checkbox\')){
      e.checked=checkVal;

ie5?document.getElementById(\'line\'+e.value).style.backgroundColor=checkCol:v
oid(0);
    }
  }
}

da e.value fra den sidste linie ikke længere er lig med et tal ... så måske
man kunne tage det der står efter twUploadCheckbox (f.eks. 11) og bruge den
der hvor der står e.value ...

Se evt. dette spørgsmål for bedre forståelse .. http://www.eksperten.dk/spm/134139

Håber I kan hjælpe !!!
Avatar billede nute Nybegynder
10. december 2001 - 21:10 #1
har jeg forstått det korrekt:

Denne metode:
for( i=0; i<document.twUploadForm.twSendAttachments.options.length; i++ ){

document.twUploadForm.twSendAttachments.options[i].selected=!document.twUplo
adForm.twSendAttachments.options[i].selected;
}

skal invertere alle checkboxes *unntatt* twUploadCheckAll

den siste funksjon/problem forstår jeg ikke...

/nute
Avatar billede torbenmelander Nybegynder
10. december 2001 - 21:13 #2
Det første er korrekt .. Den bør egentlig kun tage dem der twUpload ... 1,3,5,6 ...


Prøver lige at forklare det andet igen
Avatar billede torbenmelander Nybegynder
10. december 2001 - 21:17 #3
Med hensyn til det sidste problem ...

I mine checkboxes står der nu ikke mere et tal i VALUE .. men en tekst ... Derfor virker denne linie ikke:

ie5?document.getElementById(\'line\'+e.value).style.backgroundColor=checkCol:v
oid(0);

da e.value jo ikke er det tal som linien har .. (husker du fra det andet spg.)

Da jeg længere oppe i funktion

e.name.indexOf(\'twUploadCheckbox\') > -1

måske kunne trække nummeret ud fra NAME det stadig har den samme værdi tænkte jeg at man måske kunne bruge den ...

Forstår du nu ???
Avatar billede nute Nybegynder
10. december 2001 - 21:17 #4
hmmm....jeg forstår ikke. du snakker om checkboxes, men du poster en kode som løper igjennom en selectbox. har du en link ??
Avatar billede torbenmelander Nybegynder
10. december 2001 - 21:20 #5
ok, den kode jeg pastede var noget du engang lavede til mig hvor jeg brugte en select-box men nu bruger jeg det med checkboxes og ønsker funktionen omskrevet til det ...
Avatar billede torbenmelander Nybegynder
10. december 2001 - 21:21 #6
Har ikke noget link ... men jeg kan lige lave et ...
Avatar billede torbenmelander Nybegynder
10. december 2001 - 21:28 #7
Avatar billede torbenmelander Nybegynder
10. december 2001 - 21:30 #8
Prøv at klikke på den øverste checkbox .. det er den der markere alle sammen .. men ikke særlig godt mere .....
Avatar billede torbenmelander Nybegynder
10. december 2001 - 21:36 #9
Forstår du nu ???
Avatar billede torbenmelander Nybegynder
10. december 2001 - 21:46 #10
Jeg vender tilbage senere ... Håber du/andre så har fundet en løsning ;-)
Avatar billede nute Nybegynder
10. december 2001 - 22:05 #11
legg denne linje øverst i ditt script:

var checkBoxName = \"twUploadCheckbox\";

for å invertere alle dine checkboxes:

function invertAll(){
  for (var i=0;i<document.twUploadForm.elements.length;i++){
      var e = document.twUploadForm.elements[i];
    if ( ( e.name.indexOf( checkBoxName ) > -1 ) && (e.type==\'checkbox\') ){
            e.checked=!e.checked;
      checkCol = e.checked?\'#FCF880\':\'#FFFDAC\';
            idVal = e.name.substr( checkBoxName.length );
      ie5 ? document.getElementById(\'line\'+ idVal ).style.backgroundColor=checkCol:void(0);
    }
    }
}

for å markere alle:

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

60 poeng er mer enn nok...

/nute

Avatar billede torbenmelander Nybegynder
10. december 2001 - 22:16 #12
Ok, tak  .... jeg regner med at det virker ;-)
Avatar billede torbenmelander Nybegynder
11. december 2001 - 06:50 #13
Ups, nu fik du alle pointne .. nå du skylder mig en tjeneste så :-)
Avatar billede nute Nybegynder
11. december 2001 - 11:32 #14
jammen hvis du vil ha dem tilbake, så får du jo det...men jeg regner med at du fikk det du ville ha ??
Avatar billede torbenmelander Nybegynder
11. december 2001 - 11:59 #15
Det virkede fint ... behold du dem bare
Avatar billede nute Nybegynder
11. december 2001 - 12:18 #16
fino :-)
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