Avatar billede net-base.dk Nybegynder
01. maj 2007 - 13:40 Der er 6 kommentarer og
1 løsning

Test af flere Checboxe.

Jeg har lavet denne lille kode som skal kunne teste om en Checkbox er markedet, men men den virker ikke.

Hvordan får jeg den til at bruge det ID som kommer med i funktion kaldet i koden?

<html>
<head>
    <title>javascript test</title>
    <script type="text/javascript" language="javascript">
        function checkbox(id) {
            alert("function kaldt");
           
            if(document.testform.chk[id].checked) {
                alert("box er markeder");
            } else {
                alert("box er IKKE markeder");
            }
        }
    </script>
</head>
<body>

<form action="" method="POST" name="testform">
<table border="1">
    <tr>
        <td colspan="2"><input type="checkbox" name="submit" value="yes" id="submit"><label for="submit">Submit</label></td>
    </tr>
    <tr>
        <td colspan='1'><input type='checkbox' name='chk[1]' value='yes'></td>
        <td colspan='1'><input type='button' name='but[1]' value='marker checkbox' onclick="checkbox('1');"></td>
    </tr>
    <tr>
        <td colspan='1'><input type='checkbox' name='chk[2]' value='yes'></td>
        <td colspan='1'><input type='button' name='but[2]' value='marker checkbox' onclick="checkbox('2');"></td>
    </tr>
    <tr>
        <td colspan='1'><input type='checkbox' name='chk[3]' value='yes'></td>
        <td colspan='1'><input type='button' name='but[3]' value='marker checkbox' onclick="checkbox('3');"></td>
    </tr>
    <tr>
        <td colspan='1'><input type='checkbox' name='chk[4]' value='yes'></td>
        <td colspan='1'><input type='button' name='but[4]' value='marker checkbox' onclick="checkbox('4');"></td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" value="send"></td>
    </tr>
</table>
</form>
</body>
</html>
Avatar billede roenving Novice
01. maj 2007 - 14:04 #1
Hvis du gør det inde fra formen, kan du ligesågodt sende den med !-)

-- og hvis dine buttons har numre parallelt med checkboksene, kan man tage numrene med derfra ...

-- og problemet er, at javascript _ikke_ opfatter det som ens navne, og derfor ikke har indekseret dem, så du skal lave en tekststreng, der er det nøjagtige navn:

        function checkbox(id) {
            alert("function kaldt");
           
            if(document.testform.elements["chk[" + id + "]"].checked) {
                alert("box er markeret");
            } else {
                alert("box er IKKE markeret");
            }
        }

-- og den kan så gøres lidt lettere:

        <td><input type='checkbox' name='chk[1]' value='yes'></td>
        <td><input type='button' name='but[1]' value='marker checkbox' onclick="checkbox(this);"></td>

        function checkbox(elm) {
            //alert("function kaldt");
            var id = elm.name.match(/\d+/)[0];
            if(elm.form.elements["chk[" + id + "]"].checked) {
                alert("box er markeder");
            } else {
                alert("box er IKKE markeder");
            }
        }
Avatar billede roenving Novice
01. maj 2007 - 14:09 #2
PS. Du har valgt et _meget_ uheldigt navn til en af dine elementer, nemlig den checkbox, du har kaldt 'submit' ...

-- utallige er de gange, hvor brugere har haft et javascript, der skulle submitte en form, men intet andet end en javascript-fejl har været resultatet, fordi et formelement havde navnet 'submit' !-)
Avatar billede net-base.dk Nybegynder
01. maj 2007 - 14:28 #3
Det første virker perfekt.

Hvis jeg skal have CheckBox funktionen til at markere det element med det ID som knapper har, hvordan skal den kode så se ud?
Avatar billede net-base.dk Nybegynder
01. maj 2007 - 14:29 #4
document.testform.elements["chk[" + id + "]"].checked = true;

fandt selv ud af det ved at lege lidt...
Avatar billede net-base.dk Nybegynder
01. maj 2007 - 14:30 #5
Smid svar.
Avatar billede roenving Novice
01. maj 2007 - 14:43 #6
Velbekomme '-)
Avatar billede roenving Novice
01. maj 2007 - 15:27 #7
-- og tak 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