Avatar billede karsten_larsen Praktikant
21. juli 2003 - 12:09 Der er 18 kommentarer og
2 løsninger

valg af select bokse med forskellige name

Jeg fik hjælp til at ændre et script, hvor det er muligt at sætte kryds i en checkbox[ALLE], hvorefter de øvrige checkbokse automatisk bliver markeret og slette checkbox [Alle] (http://www.eksperten.dk/spm/377952)

Problemet er nu at de forskellige checkbokse skal have forskellige navne, hvordan kan jeg håndterede det. Så istedet for at de alle hedder "list" kan hedde noget helt andet f.eks. valg 1, valg 2 etc

?:-) karsten_larsen

Mit script ser sådan ud nu:

<html>
<!-- This file retrieved from the JS-Examples archives
http://www.js-examples.com
1000s of free ready to use scripts, tutorials, forums.
Author: JS-Examples - http://www.js-examples.com/
-->
<script>
<!-- Begin
var checkflag = "false";
function check(field)
{
var i;
if (eval(field[0].checked))
{
  for (i=0;i<field.length;i++)
    field[i].checked=true;
  LL(field);
  return "Uncheck All";
}
else
{
  for(i=0;i<field.length;i++)
    field[i].checked=false;
  UU(field);
  return "Check All";
}
}
function LL(field){field.disabled=true;}
function UU(field){field.disabled=false;}
//  End -->
</script>

<body>

<FORM method="post" >
<INPUT type=checkbox name=list value="Check All" onClick="this.value=check(this.form.list);">Alle valg<br>
<INPUT type=checkbox name="list" value="1" onclick="if(!this.checked)this.form.list[0].checked=false;">Valg 1<br>
<INPUT type=checkbox name="list" value="2" onclick="if(!this.checked)this.form.list[0].checked=false;">Valg 2<br>
<INPUT type=checkbox name="list" value="3" onclick="if(!this.checked)this.form.list[0].checked=false;">Valg 3<br>
<INPUT type=checkbox name="list" value="4" onclick="if(!this.checked)this.form.list[0].checked=false;">Valg 4<br>
<INPUT type=checkbox name="list" value="5" onclick="if(!this.checked)this.form.list[0].checked=false;">Valg 5<br>
<INPUT type=checkbox name="list" value="6" onclick="if(!this.checked)this.form.list[0].checked=false;">Valg 6<br>


<INPUT  type=reset value="slet">
<INPUT name="valg_muligheder"  type=button value="Send">
</FORM>

</body>
</html>
Avatar billede TRoXa Novice
21. juli 2003 - 12:16 #1
du kan ændre name til at være id i stedet for og så skrive hvad du har lyst til i name i stedet ..

fx


<INPUT type=checkbox id="list" name="ost" value="1" onclick="if(!this.checked)this.form.list[0].checked=false;">Valg 1<br>
<INPUT type=checkbox id="list" name="flereoste" onclick="if(!this.checked)this.form.list[0].checked=false;">Valg 2<br>
Avatar billede TRoXa Novice
21. juli 2003 - 12:18 #2
eller ... ved ikke om det virker, men det var en idé :)
Avatar billede Slettet bruger
21. juli 2003 - 12:19 #3
troxa>> Man må ikke have flere elementer med samme id på en side.

Hvis de er i samme form som her, er det nemt nok:

<script type="text/javascript">
function vaelgAlle(obj) {
  frm = obj.form;
  for (i = 0; i < frm.elements.length; i++) {
    if (frm.elements[i].type == "checkbox")
      frm.elements[i].checked = obj.checked;
  }
}
</script>

<form>
<input type="checkbox" name="alle" onclick="vaelgAlle(this);" />Alle valg<br />
<input type="checkbox" name="navn1" value="1" onclick="this.form.alle.checked = this.checked;" />Valg1<br />
<input type="checkbox" name="navn2" value="2" onclick="this.form.alle.checked = this.checked;" />Valg2<br />
osv.
</form>
Avatar billede TRoXa Novice
21. juli 2003 - 12:32 #4
phoenixv >> okay :)
Avatar billede roenving Novice
21. juli 2003 - 12:33 #5
>>men man kan jo bruge den omvendte udgave af troxas ide:

Beholde det samme navn, men give dem forskelligt id -- men det giver sikkert problemer serverside ...

Og så var du for hutig phoenixv, for den måde du skriver onclick'en på i de almindelige check-boxe har en uheldig sideeffekt -- prøv at klikke på een af dem før nogen bliver markeret !-)
Avatar billede karsten_larsen Praktikant
21. juli 2003 - 12:33 #6
-> troxa - det virkede ikke
-> phoenixv - det virker og så fylder koden mindre - fedt vil du lave et svar.

:-) karsten_larsen

Til dem som kan bruge det blev min løsning sådan her:

<html>
<script type="text/javascript">
function vaelgAlle(obj) {
  frm = obj.form;
  for (i = 0; i < frm.elements.length; i++) {
    if (frm.elements[i].type == "checkbox")
      frm.elements[i].checked = obj.checked;
  }
}
</script>
<body>

<FORM method="post" action="valg.asp" >
<input type="checkbox" name="alle" onclick="vaelgAlle(this);" />Alle valg<br />
<input type="checkbox" name="navn1" value="1" onclick="this.form.alle.checked = this.checked;" />Valg1<br />
<input type="checkbox" name="navn2" value="2" onclick="this.form.alle.checked = this.checked;" />Valg2<br />
<input type="checkbox" name="navn3" value="3" onclick="this.form.alle.checked = this.checked;" />Valg3<br />
<input type="checkbox" name="navn4" value="4" onclick="this.form.alle.checked = this.checked;" />Valg4<br />
<input type="checkbox" name="navn5" value="5" onclick="this.form.alle.checked = this.checked;" />Valg5<br />
<input type="checkbox" name="navn6" value="6" onclick="this.form.alle.checked = this.checked;" />Valg6<br />
<INPUT  type=reset value="slet">
<INPUT name="valg_muligheder"  type="submit" value="Send">
</FORM>

</body>
</html>
Avatar billede Slettet bruger
21. juli 2003 - 12:34 #7
roenving>> Det var faktisk min intention. Måske er den ikke så vellykket. :)
Avatar billede roenving Novice
21. juli 2003 - 12:34 #8
>>karsten

Check lige mit indlæg (1 sek. før dit ;-)
Avatar billede karsten_larsen Praktikant
21. juli 2003 - 12:35 #9
UPS - der kom er nyt indlæg fra roenvig og det passer.

Så hvordan klare jeg det.

:-)
Avatar billede roenving Novice
21. juli 2003 - 12:36 #10
Hvis man bare klikker på een af checkboxene, som de er i sidste udgave bliver alle krydset af samtidigt -- ikke hensigtsmæssigt, og forøvrigt en ide, som jeg nåede at forlade i det andet spørgsmål !-)
Avatar billede roenving Novice
21. juli 2003 - 12:36 #11
Bare den der onclick-ting på boxene tilbage ...
Avatar billede Slettet bruger
21. juli 2003 - 12:37 #12
Hvordan skal det så fungere, hvis man vælger en checkbox?
Avatar billede karsten_larsen Praktikant
21. juli 2003 - 12:39 #13
Jeg er ikke helt med - for det med id1, id2 osv det virkede jo ikke.

-> phoenixv
[ALLE] = alle checkbokse markeres, hvis man så trykker på en af de andre checkbok valg 2, så slettes krydset i [ALLE]

:-)
Avatar billede roenving Novice
21. juli 2003 - 12:40 #14
Sådan som den fungerede:
Klik på alle og alle bliver markeret ...
Hvis alle er markeret skal eet klik i en anden checkbox OGSÅ fjerne afkrydsningen i alle-feltet ...

<html>
<script type="text/javascript">
function vaelgAlle(obj) {
  frm = obj.form;
  for (i = 0; i < frm.elements.length; i++) {
    if (frm.elements[i].type == "checkbox")
      frm.elements[i].checked = obj.checked;
  }
}
</script>
<body>

<FORM method="post" action="valg.asp" >
<input type="checkbox" name="alle" onclick="vaelgAlle(this);" />Alle valg<br />
<input type="checkbox" name="navn1" value="1" onclick="onclick="if(!this.checked)this.form.alle.checked=false;" />Valg1<br />
<input type="checkbox" name="navn2" value="2" onclick="onclick="if(!this.checked)this.form.alle.checked=false;" />Valg2<br />
<input type="checkbox" name="navn3" value="3" onclick="onclick="if(!this.checked)this.form.alle.checked=false;" />Valg3<br />
<input type="checkbox" name="navn4" value="4" onclick="onclick="if(!this.checked)this.form.alle.checked=false;" />Valg4<br />
<input type="checkbox" name="navn5" value="5" onclick="onclick="if(!this.checked)this.form.alle.checked=false;" />Valg5<br />
<input type="checkbox" name="navn6" value="6" onclick="onclick="if(!this.checked)this.form.alle.checked=false;" />Valg6<br />
<INPUT  type=reset value="slet">
<INPUT name="valg_muligheder"  type="submit" value="Send">
</FORM>

</body>
</html>
Avatar billede Slettet bruger
21. juli 2003 - 12:40 #15
Så lav checkboxene sådan her, som roenving siger:

<input type="checkbox" name="navn1" value="1" onclick="if (!this.checked) this.form.alle.checked = false;" />Valg1<br />
Avatar billede Slettet bruger
21. juli 2003 - 12:40 #16
:)
Avatar billede roenving Novice
21. juli 2003 - 12:42 #17
-- og editér _aldrig_ på denne skærm -- de der dobbelte onclicks skal selvfølgelig ikke være der !-)
Avatar billede karsten_larsen Praktikant
21. juli 2003 - 12:56 #18
Så lykkes det.

Point fordeling
-> roenvig 30 p: at finde fejlen iscript og lave den [vil du lave et svar]
-> phoenixv 30 p.: at lave et nyt script som var kortere

:-)karsten_larsen

For dem som kan bruge det til noget blev løsningen på mit spørgsmål:
<html>

<script type="text/javascript">
function vaelgAlle(obj) {
  frm = obj.form;
  for (i = 0; i < frm.elements.length; i++) {
    if (frm.elements[i].type == "checkbox")
      frm.elements[i].checked = obj.checked;
  }
}
</script>
<body>
<% IF request.Form("valg_muligheder") = "Send" then
var0 = request.Form("alle")
var1 = request.Form("navn1")
var2 = request.Form("navn2")
var3 = request.Form("navn3")
response.write var0 & var1 & var2 & var3
end if
%>

<FORM method="post" action="valg.asp" >
<input type="checkbox" name="alle" value="0" onclick="vaelgAlle(this);" />Alle valg<br />
<input type="checkbox" name="navn1" value="1" onclick="if (!this.checked) this.form.alle.checked = false;" />Valg1<br />
<input type="checkbox" name="navn2" value="2" onclick="if (!this.checked) this.form.alle.checked = false;" />Valg2<br />
<input type="checkbox" name="navn3" value="3" onclick="if (!this.checked) this.form.alle.checked = false;" />Valg3<br />

<INPUT  type=reset value="slet">
<INPUT name="valg_muligheder"  type="submit" value="Send">
</FORM>

</body>
</html>
Avatar billede roenving Novice
21. juli 2003 - 13:03 #19
Velbekomme '-)
Avatar billede karsten_larsen Praktikant
22. juli 2003 - 14:05 #20
Har oprettet et nyt opfølgnings spørgsmål på denne løsning

http://www.eksperten.dk/spm/378566

:-) karsten_larsen
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