Avatar billede startlinket.dk Nybegynder
28. maj 2002 - 22:38 Der er 16 kommentarer og
1 løsning

Tjek afkrydsning af 16 regler...

http://bytte.startlinket.dk/index.php?funk=accepter har jeg 16 regler, som folk skal læse og acceptere, før at de kan fortsætte.
Men det kan ikke kontroleres at de læser dem, derfor har jeg sat en tid på, så de mindste skal være 15 sek. om at læse dem.
Men er det ikke muligt at lave en lille checkboks ved hver regel, som folk skal afkrydse for at kunne fortsætte.
Så skal der være noget JavaScript validering, som popper om med en besked, hvis alle sammen ikke er afkrydset.

Nogen der kan lave sådan noget?
Avatar billede jespernaur Nybegynder
29. maj 2002 - 00:45 #1
Tror du ikke folk vil blive vanvittig irriterede, hvis de bliver tvunget til at sætte 16 hakker? Det ville jeg ihvertfald blive!
Avatar billede atn Nybegynder
29. maj 2002 - 01:41 #2
Jeg tror en vil være nok...

Hvor de bekræfter at de har læst reglerne....

Et klik kan de godt overkomme ! :o)

Venligst

<ATN/>
Avatar billede startlinket.dk Nybegynder
29. maj 2002 - 07:49 #3
Problemet er jo at folk bare skider på reglerne og accepterer dem, uden at have læst dem.
Det kan jeg tydeligt se, da mange bruger FastFreeway, selvom det står i reglerne, at det må man ikke...

Men jeg kan godt se at det vil blive irriterende...
Avatar billede snowball Novice
29. maj 2002 - 07:56 #4
Stillede selv engang et lign. spørgsmål. Måske kan du bruge det til noget !

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

Snowball
Avatar billede snowball Novice
29. maj 2002 - 07:58 #5
Der skal selvfølgelig så laves et par ændringer så den tæller en variabel op hver gang den finder en checkbox der er markeret og til sidst skal du så lave et tjek på om den variabel er lig med 16 ;)

Snowball
Avatar billede ras2000 Nybegynder
29. maj 2002 - 14:03 #6
Her er en der virker.
<html>
<head>
<script type="text/javascript">
antal = 0;
antalspoergsmaal = 16;
tid = 0;
antalsekundertilhver = 16;
function timer(){
    tid ++;
    setTimeout("timer()", 1000);
}
function doit(el){
    if (tid > antalsekundertilhver && antal < antalspoergsmaal){
        for (i = 0; i < document.all.length; i ++){
            if (document.all[i].tagName == "TR" && document.all[i].style.display == "none"){
                document.all[i].style.display = "block";
                i = document.all.length;
            }
        }
    }else{
        alert("den har du vist ikke læst ordentligt");
        el.checked = false;
    }
    antal ++
    tid = 0;
    timer();
}

   
</script>
</head>
<body onload="timer()">
<tabel>
<table>
    <tr>
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 1</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 2</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 3</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 4</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 5</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 6</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 7</td>
    </tr>
</body>
Det du skal ændre er antalspoergsmaal og antalsekundertilhver, så de passer, og ellers fylde dine regler ind.
Avatar billede ras2000 Nybegynder
29. maj 2002 - 14:04 #7
svar, og lad nu være med at afvise den, før du er sikker på at du ikke kan bruge det :)
Avatar billede startlinket.dk Nybegynder
29. maj 2002 - 14:37 #8
ras2000 -> Ellers en smart måde at lave det på, men jeg har nu siddet i et godt stykke tid og testet og testet. Og har jeg endnu ikke forstået helt hvordan at det egentlig virker.
Det er fint nok det med tiden, men jeg synes ikke at det helt fungerer...
Det er somom at det kun er den første regel at det med tiden fungerer rigtigt.

Og hvordan skal man så lave, så den først viser submit knappen, når den sidste regel er accepteret?
Avatar billede ras2000 Nybegynder
29. maj 2002 - 14:52 #9
Der var et lille problem, med linien timer(). Jeg hvade lige glemt at man ikke skal starte en funktion flere gange. Her er et demonstraionseksempel, hvor du kan se den tælle sekunderne. Jeg har sat den til 5 sek, for ikke at dø af kedsomhed.
<html>
<head>
<script type="text/javascript">
antal = 0;
antalspoergsmaal = 16;
tid = 0;
antalsekundertilhver = 5;
function timer(){
    tid ++;
    setTimeout("timer()", 1000);
    document.all.her.value=tid;
}
function doit(el){
    if (tid > antalsekundertilhver && antal < antalspoergsmaal){
        antal ++
        tid = 0;
        for (i = 0; i < document.all.length; i ++){
            if (document.all[i].tagName == "TR" && document.all[i].style.display == "none"){
                document.all[i].style.display = "block";
                i = document.all.length;
            }
        }
    }else{
        alert("den har du vist ikke læst ordentligt");
        el.checked = false;
    }
    if (antal == 16) document.formen.ok.style.display = "block";
}

   
</script>
</head>
<body onload="timer()">
<form name="formen">
<table>
    <tr>
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 1</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 2</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 3</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 4</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 5</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 6</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 7</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 8</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 9</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 10</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 11</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 12</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 13</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 14</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 15</td>
    </tr>
    <tr style="display:none">
        <td><input type="checkbox" onclick="doit(this)"></td>
        <td>regel 16</td>
    </tr>
</table>
<input type="submit" value="Jeg accepeterer" style="display:none" name="ok">
</form>
<input type="text" id="her">
</body>
</html>
Avatar billede startlinket.dk Nybegynder
29. maj 2002 - 15:10 #10
Hvad er variablen "antal", "antalspørgsmål" og "tid" til?
Og er du sikker på at det ikke bare at noget som vil skræmme alle væk?

Tror altså at det dér med tiden skal droppes, da det bare gør folk sure.
Så prøv hellere bare at lave så man får alle regler samtidig og skal afkrydse, og så når man klikker på submit, så tjekker den om alle sammen er afkrydsede, og advarer så hvis de ikke er...
Avatar billede ras2000 Nybegynder
29. maj 2002 - 15:19 #11
OK, det har ikke pisse meget med hvad du spurgte om at gøre. Variablen antal er for at tælle hvor mange spørgsmål man har været igennem, knne gøres på en anden måde. Tid er til at holde styr på tiden, det bad du jo om. Og jeg er fuldstændig sikker på at alle vil hade det system, det var der en der gjorde dig opmærksom på helt i starten. Det andet er sgu for simpelt, det er jo en validering. Prøv at tage dig sammen, og se om du ikke selv kan klare den.
Avatar billede startlinket.dk Nybegynder
29. maj 2002 - 15:25 #12
Jeg kan jo ikke Java, som jeg sikkert har skrevet før...
Så jeg kan altså ikke finde ud af noget...

Jeg bad ikke om noget med tid, i hvert fald ikke hvis du kigger i spørgsmålet til at starte med.
Dér skal jeg at jeg bare ville have så den tjekker om alle er afkrydset...

Kunne du lave sådan noget?
Avatar billede ras2000 Nybegynder
29. maj 2002 - 15:29 #13
Men det kan ikke kontroleres at de læser dem, derfor har jeg sat en tid på, så de mindste skal være 15 sek. om at læse dem. - skrev du i spørgmsmålet.
Jeg kigger lige på det andet og vender tilbage.
Avatar billede startlinket.dk Nybegynder
29. maj 2002 - 15:31 #14
"...derfor har jeg sat en tid på...", skrev jeg.
Det er altså _mig_ at der har sat tiden på, og den ønsker jeg at slippe af med...
Forstod bare dit script, som et nyt forslag, hvor tid blev brugt på en anden måde.
Avatar billede ras2000 Nybegynder
29. maj 2002 - 15:41 #15
Nå, jeg var ikke klar over at den skulle væk. Her er den simple version i hvert fald.
<html>
<head>
<script type="text/javascript">
function valider(ting){
    a = 0;
    for (i = 0; i < ting.all.length; i++){
        if (ting.all[i].tagName == "INPUT" && ting.all[i].type == "checkbox" && ting.all[i].checked == false){
            a ++;
        }
    }
    if (a > 0) {
        alert("du mangler at krydse " + a + " af!")
        return false;
    }
}   
</script>
</head>
<body>
<form name="formen" onsubmit="return valider(this)">
<input type="checkbox">&nbsp;&nbsp;Regel 1<br>
<input type="checkbox">&nbsp;&nbsp;Regel 2<br>
<input type="checkbox">&nbsp;&nbsp;Regel 3<br>
<input type="checkbox">&nbsp;&nbsp;Regel 4<br>
<input type="checkbox">&nbsp;&nbsp;Regel 5<br>
<input type="checkbox">&nbsp;&nbsp;Regel 6<br>
<input type="checkbox">&nbsp;&nbsp;Regel 7<br>
<input type="checkbox">&nbsp;&nbsp;Regel 8<br>
<input type="checkbox">&nbsp;&nbsp;Regel 9<br>
<input type="checkbox">&nbsp;&nbsp;Regel 10<br>
<input type="checkbox">&nbsp;&nbsp;Regel 11<br>
<input type="checkbox">&nbsp;&nbsp;Regel 12<br>
<input type="checkbox">&nbsp;&nbsp;Regel 13<br>
<input type="checkbox">&nbsp;&nbsp;Regel 14<br>
<input type="checkbox">&nbsp;&nbsp;Regel 15<br>
<input type="checkbox">&nbsp;&nbsp;Regel 16<br>
<input type="submit" value="ok">
</form>
</body>
</html>
Men folk bliver altså stadig idioter af at skulle hakke sig igennem 16 felter.
Avatar billede ras2000 Nybegynder
29. maj 2002 - 17:03 #16
Her er en der bare viser alle reglerne med et interval, det kunne være det var smartere.
<html>
<head>
<script type="text/javascript">
a = 0;
function doit(){
    for (i = 0; i < document.formen.all.length; i++){
        if (document.formen.all[i].style.display == "none"){
            document.formen.all[i].style.display = "block";
            i = document.formen.all.length;
        }
    }
    a ++;
    if (a < 16) setTimeout("doit()", 3000);
    if (a == 16) document.formen.ok.style.display = 'block';
}
</script>
</head>
<body onload="doit()">
<form name="formen" onsubmit="return valider(this)">
<div>Regel 1</div>
<div style="display:none">Regel 2</div>
<div style="display:none">Regel 3</div>
<div style="display:none">Regel 4</div>
<div style="display:none">Regel 5</div>
<div style="display:none">Regel 6</div>
<div style="display:none">Regel 7</div>
<div style="display:none">Regel 8</div>
<div style="display:none">Regel 9</div>
<div style="display:none">Regel 10</div>
<div style="display:none">Regel 11</div>
<div style="display:none">Regel 12</div>
<div style="display:none">Regel 13</div>
<div style="display:none">Regel 14</div>
<div style="display:none">Regel 15</div>
<div style="display:none">Regel 16</div>
<input type="submit" value="ok" name="ok" style="display:none">
</form>
</body>
</html>
Avatar billede startlinket.dk Nybegynder
29. maj 2002 - 18:04 #17
Det ser ud til at jeg kan bruge en af de to sidste, så du får bare dine 10 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