Avatar billede supermand69 Nybegynder
22. september 2004 - 15:31 Der er 13 kommentarer og
1 løsning

marker alle checkbokse i form

Jeg har en form med nogle rækker med checkbokse... Når man markerer en checkboks skal hele rækken skifte style, og når man markerer "Marker alle" skulle alle mine checkbokse blive markeret

http://clark.avansis.dk/temp/mark_all.htm
Avatar billede roenving Novice
22. september 2004 - 15:36 #1
Sådan ?-)

<script language="javascript" type="text/javascript">
var forced = false;
function change_background(fld, force)
{
    row = fld.parentNode;
    for(; row.tagName!='TR'; row=row.parentNode);
    row.style.backgroundColor = (force)?((forced)?'#f5dfdf':''):(fld.checked)?'#f5dfdf':'';
}

function check_all(cb, frm)
{
    checks = document.forms[frm].elements;
    for(i=0; checks.length>i; i++)
    {
        if(checks[i].type == 'checkbox')
        {
            checks[i].checked = cb;
            change_background(checks[i], false);
        }
        else change_background(checks[i], false);
    }
}
</script>
Avatar billede supermand69 Nybegynder
22. september 2004 - 17:03 #2
yes sir :)

lav svar...
Avatar billede supermand69 Nybegynder
22. september 2004 - 17:04 #3
men er der egentlig ikke en del overflødig kode i den første funktion??
Avatar billede roenving Novice
22. september 2004 - 17:06 #4
Jo !-)

-- men den er jo også lavet under nogle specialle forudsætninger:

<script language="javascript" type="text/javascript">
function change_background(fld)
{
    row = fld.parentNode;
    for(; row.tagName!='TR'; row=row.parentNode);
    row.style.backgroundColor = (fld.checked)?'#f5dfdf':'';
}

function check_all(cb, frm)
{
    checks = document.forms[frm].elements;
    for(i=0; checks.length>i; i++)
    {
        if(checks[i].type == 'checkbox')
        {
            checks[i].checked = cb;
            change_background(checks[i]);
        }
        else change_background(checks[i]);
    }
}
</script>
Avatar billede roenving Novice
22. september 2004 - 17:06 #5
-- og velbekomme '-)
Avatar billede supermand69 Nybegynder
22. september 2004 - 17:11 #6
- og så lige en sidste ting... min checkboks "Marker alle" skal selvfølgelig ikke checkes ;)
Avatar billede supermand69 Nybegynder
22. september 2004 - 17:14 #7
hov, mente skifte baggrund :)
Avatar billede roenving Novice
22. september 2004 - 17:18 #8
if(checks[i].type == 'checkbox'&&checks[i].name=='delete[]')
Avatar billede supermand69 Nybegynder
22. september 2004 - 17:24 #9
det er ikke sikkert at de hedder delete[]

de kan også hedde noget andet
Avatar billede roenving Novice
22. september 2004 - 17:28 #10
Hvis vi så siger, at du bibeholder det nuværende, hvor marker alle-checkboxen ikke har et navn, så:

if(checks[i].type == 'checkbox'&&checks[i].name!='')
Avatar billede supermand69 Nybegynder
22. september 2004 - 17:34 #11
den ændrer stadig baggrund på alle rækker?!
Avatar billede roenving Novice
22. september 2004 - 17:39 #12
Hrm, der var jeg ikke opmærksom, for der er endnu mere rest fra tidligere ...

<script language="javascript" type="text/javascript">
function change_background(fld)
{
    row = fld.parentNode;
    for(; row.tagName!='TR'; row=row.parentNode);
    row.style.backgroundColor = (fld.checked)?'#f5dfdf':'';
}

function check_all(cb, frm)
{
    checks = document.forms[frm].elements;
    for(i=0; checks.length>i; i++)
    {
        if(checks[i].type == 'checkbox'&&checks[i].name!='')
        {
            checks[i].checked = cb;
            change_background(checks[i]);
        }
    }
}
</script>
Avatar billede supermand69 Nybegynder
22. september 2004 - 17:47 #13
tak for hjælpen :)
Avatar billede roenving Novice
22. september 2004 - 17:49 #14
-- og jeg takker 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