Avatar billede Slettet bruger
20. januar 2003 - 11:13 Der er 23 kommentarer og
3 løsninger

Check alle checkboxes ved klik

Jeg har en række checkboxe som alle hedder mailids[]. Hvordan laver jeg en funktion, som afkrydser alle disse på en gang?


<a href='' onClick='\"return tjek()\"; return false'>Select all</a>

<script>
function tjek() {
n = 0;
if (index.elements[i].type == \"checkbox\") {
index.elements[i].value = checked;
}
return false;
}
</script>

... virker ikke.
Avatar billede riversen Nybegynder
20. januar 2003 - 11:16 #1
for( i = 0; i < mailids.length; i++ )
{
  mailids[i].checked = true;
}

noget i den retning
Avatar billede pelkjaer Nybegynder
20. januar 2003 - 11:17 #2
function checkAll(field) {
for (i = 0; i < field.length; i++)
    field[i].checked = true ;
}

function uncheckAll(field) {
for (i = 0; i < field.length; i++)
    field[i].checked = false ;
}

onclick="checkAll(document.fornavn.elemendID);"> og så fremdeles
Avatar billede Slettet bruger
20. januar 2003 - 11:24 #3
Ingen virkede :( prøv selv:



<form action=/vismail.php method=post name=index>
<input type=checkbox name="mailids[]" value="3">
<input type=checkbox name="mailids[]" value="2">
<input type=checkbox name="mailids[]" value="1">

<a href='' onClick='"return tjek(document.index.mailids)"; return false'>Select all</a>

<script>
function tjek(field) {
for (i = 0; i < field.length; i++)
    field[i].checked = true ;
}
</script>
Avatar billede pelkjaer Nybegynder
20. januar 2003 - 11:27 #4
<form action=/vismail.php method=post name="index">
<input type=checkbox name="mailids" value="3">
<input type=checkbox name="mailids" value="2">
<input type=checkbox name="mailids" value="1">

<a href="#" onclick="tjek(document.index.mailids)"; return false'>Select all</a>

<script>
function tjek(field) {
for (i = 0; i < field.length; i++)
    field[i].checked = true ;
}
Avatar billede pelkjaer Nybegynder
20. januar 2003 - 11:28 #5
<a href="#" onclick="tjek(document.index.mailids); return false">Select all</a> :)
Avatar billede Slettet bruger
20. januar 2003 - 11:30 #6
Virker heller ikke... prøv selv.
Avatar billede pelkjaer Nybegynder
20. januar 2003 - 11:31 #7
Har jeg da gjort - virker fint
Avatar billede pelkjaer Nybegynder
20. januar 2003 - 11:32 #8
<html>
<head>
<script>
function tjek(field) {
for (i = 0; i < field.length; i++)
    field[i].checked = true ;
}
</script>
</head>
<body>

<form action=/vismail.php method=post name="index">
<input type=checkbox name="mailids" value="3">
<input type=checkbox name="mailids" value="2">
<input type=checkbox name="mailids" value="1">

<a href="#" onclick="tjek(document.index.mailids); return false">Select all</a>

</body>
</html>
Avatar billede Slettet bruger
20. januar 2003 - 11:32 #9
Hvis jeg c/p din kode i et tomt dokument, så får jeg fejl på linje 6 "et objekt var ventet". Virker heller ikke hvis jeg tilføjer html/body tags.
Avatar billede Slettet bruger
20. januar 2003 - 11:33 #10
heh... min fejl. Glemte </script>
Avatar billede Slettet bruger
20. januar 2003 - 11:35 #11
Men du har jo fjernet [] fra mailids navnene. De skal være der.
Avatar billede pelkjaer Nybegynder
20. januar 2003 - 11:40 #12
Hvorfor? Du kan da heller ikke angive name/id sådan.
Avatar billede Slettet bruger
20. januar 2003 - 11:46 #13
Jo, i PHP kan man.
Avatar billede bearhugx Nybegynder
20. januar 2003 - 11:55 #14
var inputArray = document.getElementById("frm").getElementsByTagName("input");
                for(i=0; i<inputArray.length; ++i) {
                    if(inputArray[i].type ="checkbox")
                        inputArray[i].checked = "checked";
                }
Avatar billede bearhugx Nybegynder
20. januar 2003 - 11:55 #15
^ ovenstående som svar ^
Avatar billede bearhugx Nybegynder
20. januar 2003 - 11:55 #16
( markerer alle checkboxe i formen med ID'en "frm" )
Avatar billede Slettet bruger
20. januar 2003 - 12:04 #17
Virker heller ikke...





<form action=/vismail.php method=post name="index">
<input type=checkbox name="mailids[]" value="3">
<input type=checkbox name="mailids[]" value="2">
<input type=checkbox name="mailids[]" value="1">

<a href="#" onclick="tjek(index)"; return false'>Select all</a>

<script>
function tjek(frm) {
var inputArray = document.getElementById("frm").getElementsByTagName("input");
for(i=0; i<inputArray.length; ++i) {
if(inputArray[i].type ="checkbox")
inputArray[i].checked = "checked";
}
</script>
Avatar billede pelkjaer Nybegynder
20. januar 2003 - 12:08 #18
<html>
<head>
<title></title>
<script type="text/javascript">
function tjek(obj) {
  var checkBoxes = document.getElementsByTagName('input');
  for (i = 0; i < checkBoxes.length; i++) { 
    checkBoxes[i].checked = true;
  }
}
</script>
</head>
<body>

<form action="/vismail.php" method="post" name="index">
<input type="checkbox" name="mailids[]" value="3">
<input type="checkbox" name="mailids[]" value="2">
<input type="checkbox" name="mailids[]" value="1">
</form>

<a href="#" onclick="tjek(this); return false;">tjek</a>


</body>
</html>
Avatar billede websmith Nybegynder
20. januar 2003 - 12:20 #19
Du skal gøre følgende:

function check()
{
var form=document.forms['index'];
var i=0;
for(i=0;i<form.elements.length;i++)
{
  if(form.elements[i].type=='checkbox')
  {
    if(form.elements[i].name=='mailids[]')
    {
      form.elements[i].checked=true;
    }
  }
}
}

Det skulle gerne fungere. :)
Avatar billede websmith Nybegynder
20. januar 2003 - 12:20 #20
Hmm Det skulle have været et svar :)
Avatar billede websmith Nybegynder
20. januar 2003 - 12:24 #21
Det kan også være at JavaScript ikke vil acceptere dit feltnavn med mailids[], og du derfor er nødt til at lave din POST om til en GET, og så manuelt lave din submit via javascript, så du åbner:

document.location='/vismail.php?mailids[]=';

osv.
Avatar billede pelkjaer Nybegynder
20. januar 2003 - 12:24 #22
mit sidste eks virker nu også fint :o)
Avatar billede websmith Nybegynder
20. januar 2003 - 12:30 #23
Sikkert, men det da lidt noget rod at blande dhtml og DOM ind i det lige pludseligt. Hvad nu hvis brugeren er så uheldig at have en browser som ikke understøtter det, fx Netscape 4 :) Så fungerer din løsning ikke længere, men min skulle gerne fungere, forudsat at javascript vil acceptere felter med mailids[] som navn.
Avatar billede pelkjaer Nybegynder
20. januar 2003 - 12:35 #24
NN4x hører til på et musæum :)
Og at du ikke vil bruge dom forstår jeg intet af :)
Tingende har det med at forny sig.
Avatar billede bearhugx Nybegynder
20. januar 2003 - 12:37 #25
netomnia >> grunden til at du ikke har fået mit til at virke, er at du ikke har udskiftet "frm" med "index", som din form hedder...

hvis du udskifter
  var inputArray = document.getElementById("frm").getElementsByTagName("input");
med
  var inputArray = document.getElementById("index").getElementsByTagName("input");

Derudover skal der ikke være kant-paranteser efter checkboks-navnet (mailids)
så derfor skal din form-kode være :
<form action=/vismail.php method=post name="index">
<input type=checkbox name="mailids" value="3">
<input type=checkbox name="mailids" value="2">
<input type=checkbox name="mailids" value="1">
</form>
Avatar billede websmith Nybegynder
20. januar 2003 - 12:39 #26
Jeg har intet imod at bruge DOM, ,men vi kender ikke forudsætningerne for netomia's system. Vi ved ikke om han/hun vil supportere NS4 brugere, så derfor er det jo nok bedst at bruge noget som alle forstår. Og der er jo ingen grund til at bruge DOM, da det ikke er nødvendigt.
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