Avatar billede mnv_dk Praktikant
23. juni 2002 - 16:39 Der er 7 kommentarer og
1 løsning

Kun to chekbokse må være markeret

Jeg mangler et script der gør at man kun kan markere to checkbokse og så kan man ikke markere flere, hvordan gøres dette?
Avatar billede kimiwan Nybegynder
23. juni 2002 - 16:42 #1
kommer an på, hvordan det skal fungere...

skal den først markerede checkbox miste sin markering, hvis en tredje bliver markeret, eller skal de andre checkboxe disables, når der er to checkboxe markeret?
Avatar billede Slettet bruger
23. juni 2002 - 16:42 #2
du skal have en onclick="funktion()" på alle dine checkboxe.

Dit script skal så gå alle checkboxe igennem og tælle hvor mange der er afkrydset. Herefter er det blot at lave en disabled på alle resterende checkboxe.

Husk også at tage højde for at en bruger måske ombestemmer sig. Så når et kryds fjernes skal den altså tjekke det hele igen :)
Avatar billede mnv_dk Praktikant
23. juni 2002 - 16:46 #3
Ja de andre sådan at den første mister sin markering, el_barto, jeg er ikke helt ferm til javascript så kan du ikke skrive lidt mere
Avatar billede Slettet bruger
23. juni 2002 - 17:13 #4
Tag et kig på dette jeg har bikset sammen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
<script language="JavaScript" type="text/javascript">
function tael_krydser() {
taeller = 0
for (i=0; i < document.min_form.station.length; i++){
if (document.min_form.station[i].checked==true) {
taeller=taeller+1
} else {
}
}
if (taeller >= 2) {
for (i=0; i < document.min_form.station.length; i++){
if (document.min_form.station[i].checked==true) {
document.min_form.station[i].disabled=false;
} else {
document.min_form.station[i].disabled=true;
}
}
} else {
for (i=0; i < document.min_form.station.length; i++){
document.min_form.station[i].disabled=false;
}
}
}
</script>
   
   
</head>

<body>
<form name="min_form">
<input type="checkbox" name="station" onClick="tael_krydser(); return true"><br>
<input type="checkbox" name="station" onClick="tael_krydser()"><br>
<input type="checkbox" name="station" onClick="tael_krydser()"><br>
<input type="checkbox" name="station" onClick="tael_krydser()"><br>
<input type="checkbox" name="station" onClick="tael_krydser()"><br>
</form>

</body>
</html>
Avatar billede lp Nybegynder
23. juni 2002 - 19:28 #5
det er et meget nice script, men tror du ikke mnv_dk måske ønsker at nogle af de forskellige checkboxes skal hedde noget forskelligt ? det tager dette script vel ikke så meget højde for ?
Avatar billede Slettet bruger
23. juni 2002 - 22:50 #6
lp> Det er jo lidt svært at lave et script ud fra de oplysninger han (ikke) kommer med. Men du kan jo blot navngive dem i et array, eller kalde dem efter deres count nummer i formen.
Avatar billede =maddog= Nybegynder
24. juni 2002 - 07:17 #7
Og her er så et alternativ uden name.
<html>
<head>
<script>
function check(obj) {
    count = 0;
    for (i = 0; i != document.f.elements.length; i++) {
        if (document.f.elements[i].type == "checkbox" && document.f.elements[i].checked)
            count++;
    }
    if (count>2)
        obj.checked=false;
}
</script>
</head>
<body>
<form name="f">
<input type="checkbox" onClick="check(this);"><br>
<input type="checkbox" onClick="check(this);"><br>
<input type="checkbox" onClick="check(this);"><br>
<input type="checkbox" onClick="check(this);"><br>
<input type="checkbox" onClick="check(this);"><br>
</form>
</body>
</html>
Avatar billede o-zone Nybegynder
24. juni 2002 - 09:41 #8
Er det mig der har misforstået noget, eller betyder:
"Ja de andre sådan at den første mister sin markering" (citat: mnv_dk)ikke at mnv_dk gerne ville have et script der cykler de to valgte checkboxes sådan at den først valgt checkbox uncheckes når der checkes >2 checkboxe (hmm det var svært at forklare på få ord, men prøv at kikke på siden nedenfor?)
---8<----------
<HTML>
<BODY>
<script language="JavaScript">
    var que = [-1,-1];
   
    function checkCheckboxes(checkboxNumber) {
        if (document.form1.elements[checkboxNumber].checked==false) {
            if (que[0]==checkboxNumber) { que[0]=que[1]; que[1]=-1 }
            else { que[1]=-1 }
        }
        else {
            que[1] = que[0];
            que[0] = checkboxNumber;
        }
        if (que[1] == -1) { return true; }
        for(i = 0; i < document.form1.elements.length; i++) {
            document.form1.elements[i].checked=false;
        }
        if (que[0]!=-1) document.form1.elements[que[0]].checked=true;
        if (que[1]!=-1) document.form1.elements[que[1]].checked=true;       
    }
</script>
<form name="form1">
  <input type="checkbox" onClick="checkCheckboxes(0); return true;"> option 1<br>
  <input type="checkbox" onClick="checkCheckboxes(1); return true;"> option 2<br>
  <input type="checkbox" onClick="checkCheckboxes(2); return true;"> option 3<br>
  <input type="checkbox" onClick="checkCheckboxes(3); return true;"> option 4<br>
  <input type="checkbox" onClick="checkCheckboxes(4); return true;"> option 5<br>
</form>

</BODY>
</HTML>
---8<----------
(-:
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