Avatar billede fatter_keine Nybegynder
30. september 2003 - 14:52 Der er 14 kommentarer og
1 løsning

delay på submit

Jeg har et script der tømmer en hel database, og for forsigtighedens skyld vil jeg gerne sætte et delay på knappen, f.eks. ved at den først bliver aktiv når musen har stået over i fx. 5 sekunder (skal så tælle ned på knappen)
Avatar billede skovenborg Nybegynder
30. september 2003 - 16:41 #1
det kan løses på den her måde:
var permission = false;
var tal = 6;
var timer;
function taelned()
{
        knap = document.form1.slet;
        if (!permission)
    {

                tal--;
        if (tal <= 0)
            {
            window.clearTimeout(timer);
            permission = true;
            knap.value = "Slet Database";
            tal = 6;
        }
        else
                {
                        timer = window.setTimeout('taelned()',1000);
                        knap.value = tal + " sekunder";
                }


    }
    else;

}
function sletDatabase()
{
    if (permission) alert("HEJ");
    else;
}

<input type="button" name="slet" value="Slet" onmouseover="taelned();" onclick="sletDatabase();">
Avatar billede skovenborg Nybegynder
30. september 2003 - 16:41 #2
Har bare det problem at hvis du flytter musen ind og ud tæller den hurtigere. Ka' ikke lige huske hvordan det løses.
Avatar billede fatter_keine Nybegynder
01. oktober 2003 - 09:18 #3
Hvor skal "var" tingene placeres ??? de giver parse errors...
Avatar billede skovenborg Nybegynder
01. oktober 2003 - 13:11 #4
okay hvis du vil have det hele med skal du skrive:
<html>
</head>
<script type="javascript">
var permission = false;
var tal = 6;
var timer;
function taelned()
{
        knap = document.form1.slet;
        if (!permission)
    {

                tal--;
        if (tal <= 0)
            {
            window.clearTimeout(timer);
            permission = true;
            knap.value = "Slet Database";
            tal = 6;
        }
        else
                {
                        timer = window.setTimeout('taelned()',1000);
                        knap.value = tal + " sekunder";
                }


    }
    else;

}
function sletDatabase()
{
    if (permission) alert("HEJ");
    else;
}
</script>
</head>
<body>
<form name="form1">
<input type="button" name="slet" value="Slet" onmouseover="taelned();" onclick="sletDatabase();">
</form>
</body>
</html>
Avatar billede fatter_keine Nybegynder
01. oktober 2003 - 13:53 #5
Er nu sat ind, men der sker ikke nogen med mouseover...
Avatar billede skovenborg Nybegynder
01. oktober 2003 - 14:10 #6
øv altså, der var en fejl i <script type="javascript">, som skulle være type="text/javascript">

Prøv det her så:
<html>
</head>
<script type="text/javascript">
var permission = false;
var tal = 6;
var timer;
function taelned()
{
        knap = document.form1.slet;
        if (!permission)
    {

                tal--;
        if (tal <= 0)
            {
            window.clearTimeout(timer);
            permission = true;
            knap.value = "Slet Database";
            tal = 6;
        }
        else
                {
                        timer = window.setTimeout('taelned();',1000);
                        knap.value = tal + " sekunder";
                }


    }
    else;

}
function sletDatabase()
{
    if (permission)
        {
            alert("HEJ");
            permission = false;
        }   
    else;
}
</script>
</head>
<body>
<form name="form1">
<input type="button" name="slet" value="Slet" onmouseover="taelned();" onclick="sletDatabase();">
</form>
</body>
</html>
Avatar billede roenving Novice
01. oktober 2003 - 20:10 #7
>>skovenborg

-- du løser hastighedsproblemet ved at sætte timer = 0 fra start og så vælge setInterval i stedet, for så kan du undlade at starte setInterval, hvis timer er forskellig fra nul !-)
Avatar billede skovenborg Nybegynder
01. oktober 2003 - 21:57 #8
roenving>>
Tak for det :-) Jeg skulle også lige lave en ekstra variabel så tallet ikke trækkes fra hver gang du flytter musen over. Måske er der er bedre løsning, men i hvert fald kan man gøre sådan her nu:

<html>
</head>
<script type="text/javascript">
var permission = false;
var tal = 6;
var timer = 0;
var out = false;
function taelned()
{

    knap = document.form1.slet;
    if (!permission)
    {
        tal--;

        if (tal <= 0)
        {
            window.clearInterval(timer);
            permission = true;
            knap.value = "Slet Database";
            tal = 6;
        }
        else
        {
                if (timer == 0)
                {
                    timer = window.setInterval('taelned();',1000);
                }
                knap.value = tal + " sekunder";
        }

    }
    else;

}
function sletDatabase()
{
    if (permission)
        {
            alert("HEJ");
            permission = false;
        }
    else;
}
</script>
</head>
<body>
<form name="form1">
<input type="button" name="slet" value="Slet" onmouseover="if (!out) taelned();" onclick="sletDatabase();" onmouseout="out=true">
</form>
</body>
</html>
Avatar billede skovenborg Nybegynder
01. oktober 2003 - 22:00 #9
okay, måske skulle man bare gøre sådan:
var active = false;
function taelned()
{

    active = true;
    knap = document.form1.slet;
    .....
}

og så:
<form name="form1">
<input type="button" name="slet" value="Slet" onmouseover="if (!active) taelned();" onclick="sletDatabase();">
</form>
Avatar billede fatter_keine Nybegynder
06. oktober 2003 - 09:55 #10
Udført med fejl på siden... virker ikke
Avatar billede skovenborg Nybegynder
06. oktober 2003 - 17:08 #11
hmm, det virker fint hos mig. Prøv at se dette link:
http://www.skovenborg.frac.dk/scripts/countDown.php
Avatar billede fatter_keine Nybegynder
28. oktober 2003 - 09:41 #12
Den skal desuden nulstille countdown, når man ikke har mouseover... da det er meningen at man skal holde markøren over knappen i 5 sekunder før man kan trykke...
Avatar billede skovenborg Nybegynder
17. november 2003 - 23:29 #13
hov undskyld jeg ikke lige har svaret tilbage - ser lige på det :-)
Avatar billede fatter_keine Nybegynder
03. december 2003 - 10:12 #14
lukker...
Avatar billede skovenborg Nybegynder
03. december 2003 - 16:50 #15
sorry jeg ikke kunne hjælpe - den var noget mere tricky end jeg havde forventet :-(
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