Avatar billede kernelx Juniormester
13. marts 2003 - 11:11 Der er 8 kommentarer og
1 løsning

javascript og html-formular

Hi,
jeg har et html-formular ... som følgende:

.........................
<html>
  <head>
    <title>checkbox</title>
  </head>
  <body>
    <form name="ncheckbox" action="checkbox.php" method="POST">
      <input type="checkbox" name="cb[]" value="q">q<br>
      <input type="checkbox" name="cb[]" value="w">q<br>
    </form>

<script type="text/javascript">
<!--
function checkall ()
{

}
//-->
</script>

    <a href="java script:checkall();">select all</a>
  </body>
</html>
........................

i funktionen checkall ... skal hver checkbox settes som checked. Vigtigt er, at hver checkbox har navnet "cb[]" (altså inklusiv "[]") pga. at php ellers ikke kan kende forskel på begge.

er der nogen som ved, hvordan jeg kan få det til at virke?
Avatar billede thomashove Nybegynder
13. marts 2003 - 13:28 #1
er det et dynamisk eller fast antal checkboxe...?

hvis det er fast kan du jo bare sige :

<script type="text/javascript">
function checkall ()
{
  document.ncheckbox.cb_1.checked=true;
  document.ncheckbox.cb_2.checked=true;
}
</script>

  <body>
    <form name="ncheckbox" action="test2.php" method="POST">
      <input type="checkbox" name="cb_1" value="test1">q1<br>
      <input type="checkbox" name="cb_2" value="test2">q2<br>
      <input type="submit">
    </form>

    <a href="java script:checkall();">select all</a>
  </body>
Avatar billede Slettet bruger
13. marts 2003 - 14:31 #2
function checkall() {
  for (i = 0; i < document.ncheckbox.elements.length; i++) {
    if (document.ncheckbox.elements[i].name.indexOf("cb") == 0)
      document.ncheckbox.elements[i].checked = true;
  }
}

Det burde virke. Men JavaScript har det dårligt med sådanne navne.
Avatar billede kernelx Juniormester
14. marts 2003 - 07:34 #3
den melder en fejl ...
'document.ncheckbox.elements.length' er NULL eller ikke noget objekt

filen ser nu således ud ...


<html>
  <head>
    <title>checkbox</title>
  </head>
  <body>
    <form name="ncheckbox" action="checkbox.php" method="POST">
      <input type="checkbox" name="cb[]" value="q">q<br>
      <input type="checkbox" name="cb[]" value="w">w<br>
      <input type="checkbox" name="cb[]" value="e">e<br>
      <input type="checkbox" name="cb[]" value="r">r<br>
    </form>

<script type="text/javascript">
<!--
function checkall ()
{
    for (counter = 0; counter < document.ncheckbox.elemets.length; counter++)
    {
        if (document.ncheckbox.elements[counter].name.indexOf["cb"] == 0)
        {
            document.ncheckbox.elements[counter].checked = true;
        }
        else
        {

        }
    }
}
//-->
</script>

    <a href="java script:checkall();">select all</a>
  </body>
</html>

hvad har jeg lavet forkert?
Avatar billede kernelx Juniormester
14. marts 2003 - 07:38 #4
min fejl var ... at jeg har skrevet *elements* forkert ... sorry.
nu er problemet, at den (selv om den ikke melder nogen fejl) ikke virker ...
jeg har det samme script som ligefør ... bare at elemets er ændret til elements.
Avatar billede thomashove Nybegynder
14. marts 2003 - 11:15 #5
alternativt kan du bruge :

function checkall ()
{
    for (counter = 0; counter < document.ncheckbox.elements.length; counter++)
    {
        if (document.ncheckbox.elements[counter].type == "checkbox")
        {
            document.ncheckbox.elements[counter].checked = true;
        }
    }
}
Avatar billede thomashove Nybegynder
14. marts 2003 - 11:16 #6
denne løsning tjekker dog ikke på navnet men på om form elementet er en checkbox....så hvis du har andre checkboxe på siden der ikke skal krydses af - kan løsningen nok ikke bruges
Avatar billede kernelx Juniormester
14. marts 2003 - 12:53 #7
mange tak ...
det virker perfekt!!!
Avatar billede Slettet bruger
14. marts 2003 - 13:56 #8
Du gjorde jo heller ikke, som jeg sagde. Prøv at læse det, jeg skriver, ordentligt næste gang.
Avatar billede kernelx Juniormester
14. marts 2003 - 14:11 #9
sorry ... jeg er ikke master of danish-reading ... *s*
prøv at svare sådan at de dumme tysker også ka' forstå det *s*

med venlig hilsen
KernelX
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