Avatar billede zaico Nybegynder
24. maj 2003 - 22:04 Der er 6 kommentarer og
1 løsning

En nedtæller som jeg gerne vil havde påført en rulleliste.

jeg har et javascript som jeg gerne vil "udvide" med nogle rullelister så man kan vælge hvilke tal den skal tælle ned fra eller op til... jeg har lavet det meste men jeg kan bare ikke få scriptet til at hænte de tal den skal bruge fra rullelisterne... mit script ser sådan ud:



<title>Nedtæller</title>

<title>Nedtælling til Fødselsdag</title>

<script type="text/javascript">
<!-- Start
var now = new Date();
var event = new Date("Maaned Dag Aar 00:00:01");
var seconds = (event - now) / 1000;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
var month = days / 12;
ID=window.setTimeout("update();", 1000);
function update() {
now = new Date();
seconds = (event - now) / 1000;
seconds = Math.round(seconds);
minutes = seconds / 60;
minutes = Math.round(minutes);
hours = minutes / 60;
hours = Math.round(hours);
days = hours / 24;
days = Math.round(days);
month = days / 30;
month = Math.round(month);
document.getElementById('month').value = month;
document.getElementById('days').value = days;
document.getElementById('hours').value = hours;
document.getElementById('minutes').value = minutes;
document.getElementById('seconds').value = seconds;
ID=window.setTimeout("update();",1000);
}


// Slut -->
</script>

<h1>Nedtælling til Fødselsdag</h1>
<form method="POST" action="--WEBBOT-SELF--">Indtast din næste fødselsdag </p>
  <p>Måned&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;År<br>
  <select size="1" name="Maaned">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
  <option value="11">11</option>
  <option value="12">12</option>
  </select>&nbsp;&nbsp; <select size="1" name="Dag">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="3">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
  <option value="11">11</option>
  <option value="12">12</option>
  <option value="13">13</option>
  <option value="14">14</option>
  <option value="14">14</option>
  <option value="15">15</option>
  <option value="16">16</option>
  <option value="17">17</option>
  <option value="18">18</option>
  <option value="19">19</option>
  <option value="20">20</option>
  <option value="21">21</option>
  <option value="22">22</option>
  <option value="23">23</option>
  <option value="24">24</option>
  <option value="25">25</option>
  <option value="26">26</option>
  <option value="27">27</option>
  <option value="28">28</option>
  <option value="29">29</option>
  <option value="30">30</option>
  <option value="31">31</option>
  </select>&nbsp;&nbsp; <select size="1" name="Aar">
  <option value="1970">1970</option>
  <option value="1971">1971</option>
  <option value="1972">1972</option>
  <option value="1973">1973</option>
  <option value="1974">1974</option>
  <option value="1975">1975</option>
  <option value="1976">1976</option>
  <option value="1977">1977</option>
  <option value="1978">1978</option>
  <option value="1979">1979</option>
  <option value="1980">1980</option>
  <option value="1981">1981</option>
  <option value="1982">1982</option>
  <option value="1983">1983</option>
  <option value="1984">1984</option>
  <option value="1985">1985</option>
  <option value="1986">1986</option>
  <option value="1987">1987</option>
  <option value="1988">1988</option>
  <option value="1989">1989</option>
  <option value="1990">1990</option>
  <option value="1992">1992</option>
  <option value="1993">1993</option>
  <option value="1994">1994</option>
  <option value="1995">1995</option>
  <option value="1996">1996</option>
  <option value="1997">1997</option>
  <option value="1998">1998</option>
  <option value="1999">1999</option>
  <option value="2000">2000</option>
  <option value="2001">2001</option>
  <option value="2002">2002</option>
  <option value="2003">2003</option>
  <option value="2004">2004</option>
  <option value="2005">2005</option>
  <option value="2006">2006</option>
  <option value="2007">2007</option>
  <option value="2008">2008</option>
  <option value="2009">2009</option>
  <option value="2010">2010</option>
  </select></p>
</form>



<p>Der er <input type="text" id="month" value="0" style="width:75px;" size="20" />måneder til fødselsdag<br />
Der er <input type="text" id="days" value="0" style="width:75px;" size="20" />dage til fødselsdag<br />
Der er <input type="text" id="hours" value="0" style="width:75px;" size="20" />timer til fødselsdag<br />
Der er <input type="text" id="minutes" value="0" style="width:75px;" size="20" />minutter til fødselsdag<br />
Der er <input type="text" id="seconds" value="0" style="width:75px;" size="20" />sekunder til fødselsdag</p>
Avatar billede roenving Novice
24. maj 2003 - 22:18 #1
Sådan:


function setDato(){
var now = new Date();

Maaned=document.forms[0].Maaned[document.forms[0].Maaned.selectedIndex].value
Dag=document.forms[0].Dag[document.forms[0].Dag.selectedIndex].value
Aar=document.forms[0].Aar[document.forms[0].Aar.selectedIndex].value

var event = new Date(Aar,Maaned,Dag,0,0,1);
var seconds = (event - now) / 1000;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
var month = days / 12;
ID=window.setTimeout("update();", 1000);
}

-- og så på alle dine select'er:

<select size="1" name="Aar" onchange="setDato();">

hth
jes
Avatar billede roenving Novice
24. maj 2003 - 22:21 #2
-- jeg ville forøvrigt bruge setInterval() i starten -- så behøver du ikke kalde den -- og brugeren vil opleve det en anelse mere præcist (fordi den næsten aldrig vil ændre sig mere end eet sekund)

-- og så ville jeg bruge Math.floor og ikke Math.round ...
Avatar billede roenving Novice
24. maj 2003 - 23:11 #3
Checkede lige det hele igennem -- du bruger balndt andet en hel masse reserverede ord -- undgå altid det, men her er det så det virker (jeg har godt nok ikke testet f.eks. månedsfunktionen):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>

<title>Tomt dokument</title>

<!--
<META NAME="description" CONTENT="Tekst som du gerne vil have i overskriften">
<META NAME="keywords" CONTENT="søgeord adskilt af komma">
<META NAME="robots" CONTENT="index,follow">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=xx">
-->


<script language="javascript" type="text/javascript">
var evt;
var nu;
var ID = new object();

function setDato(){

Maaned=parseInt(document.forms[0].Maaned[document.forms[0].Maaned.selectedIndex].value)-1;
Dag=parseInt(document.forms[0].Dag[document.forms[0].Dag.selectedIndex].value);
Aar=parseInt(document.forms[0].Aar[document.forms[0].Aar.selectedIndex].value);

evt = new Date(Aar,Maaned,Dag);
update();
ID=window.setInterval("update()", 1000);

}

function update() {
nu = new Date();
sec = (evt.getTime() - nu.getTime()) / 1000;
sec = Math.floor(sec);
min = sec / 60;
min = Math.floor(min);
ho = min / 60;
ho = Math.floor(ho);
da = ho / 24;
da = Math.floor(da);
mo = da / 30;
mo = Math.floor(mo);
document.getElementById('month').value = ""+mo;
document.getElementById('days').value = ""+da;
document.getElementById('hours').value = ""+ho;
document.getElementById('minutes').value = ""+min;
document.getElementById('seconds').value = ""+sec;
//ID=window.setTimeout("update();",1000);
}
</script>


</head>

<body onresize onload>
<h1>Nedtælling til Fødselsdag</h1>
<form method="POST" action="--WEBBOT-SELF--">Indtast din næste fødselsdag </p>
  <p>Måned&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;År<br>
  <select size="1" name="Maaned" onchange="setDato();">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
  <option value="11">11</option>
  <option value="12">12</option>
  </select>&nbsp;&nbsp; <select size="1" name="Dag" onchange="setDato();">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="3">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
  <option value="11">11</option>
  <option value="12">12</option>
  <option value="13">13</option>
  <option value="14">14</option>
  <option value="14">14</option>
  <option value="15">15</option>
  <option value="16">16</option>
  <option value="17">17</option>
  <option value="18">18</option>
  <option value="19">19</option>
  <option value="20">20</option>
  <option value="21">21</option>
  <option value="22">22</option>
  <option value="23">23</option>
  <option value="24">24</option>
  <option value="25">25</option>
  <option value="26">26</option>
  <option value="27">27</option>
  <option value="28">28</option>
  <option value="29">29</option>
  <option value="30">30</option>
  <option value="31">31</option>
  </select>&nbsp;&nbsp; <select size="1" name="Aar" onchange="setDato();">
  <option value="1970">1970</option>
  <option value="1971">1971</option>
  <option value="1972">1972</option>
  <option value="1973">1973</option>
  <option value="1974">1974</option>
  <option value="1975">1975</option>
  <option value="1976">1976</option>
  <option value="1977">1977</option>
  <option value="1978">1978</option>
  <option value="1979">1979</option>
  <option value="1980">1980</option>
  <option value="1981">1981</option>
  <option value="1982">1982</option>
  <option value="1983">1983</option>
  <option value="1984">1984</option>
  <option value="1985">1985</option>
  <option value="1986">1986</option>
  <option value="1987">1987</option>
  <option value="1988">1988</option>
  <option value="1989">1989</option>
  <option value="1990">1990</option>
  <option value="1992">1992</option>
  <option value="1993">1993</option>
  <option value="1994">1994</option>
  <option value="1995">1995</option>
  <option value="1996">1996</option>
  <option value="1997">1997</option>
  <option value="1998">1998</option>
  <option value="1999">1999</option>
  <option value="2000">2000</option>
  <option value="2001">2001</option>
  <option value="2002">2002</option>
  <option value="2003">2003</option>
  <option value="2004">2004</option>
  <option value="2005">2005</option>
  <option value="2006">2006</option>
  <option value="2007">2007</option>
  <option value="2008">2008</option>
  <option value="2009">2009</option>
  <option value="2010">2010</option>
  </select></p>
</form>



<p>Der er <input type="text" id="month" value="0" style="width:75px;" size="20" />måneder til fødselsdag<br />
Der er <input type="text" id="days" value="0" style="width:75px;" size="20" />dage til fødselsdag<br />
Der er <input type="text" id="hours" value="0" style="width:75px;" size="20" />timer til fødselsdag<br />
Der er <input type="text" id="minutes" value="0" style="width:75px;" size="20" />minutter til fødselsdag<br />
Der er <input type="text" id="seconds" value="0" style="width:75px;" size="20" />sekunder til fødselsdag</p>

</body>

</html>
Avatar billede roenving Novice
25. maj 2003 - 00:01 #4
Dette er forøvrigt den funktion, som jeg selv har konstrueret:

<script language="javascript">

var verdi = 0
var nu = new Date();
var msek = Math.floor((nu.getTime() - st.getTime())/1000);
var tverdi = Math.round(msek*0.0009645*10000000)/10000000;
var snart = new Date(2003,4,30);//Dette skal du så erstatte med med setDato()

var snartmsek = snart.getTime();

function startTael() {

  nu = new Date();
  msek = snartmsek - nu.getTime();
  var sek = Math.floor(msek/1000);
  var min = Math.floor(sek/60);
  var tim = Math.floor(min/60);
  var dg = Math.floor(tim/24);
  sek = sek%60;
  min = min%60;
  tim = tim%24;
  document.tform.t2.value = "" + dg + " dg. " + tim + " t. " + min + " min. " + sek + " sek.";
  //setTimeout(startTael(), 1000);
}

</script>

Hvis du også skal have måneder med skal man lave noget med getYear og getMonth -- ellers bliver det bare alt for unøjagtigt ...
Avatar billede zaico Nybegynder
27. maj 2003 - 15:41 #5
Mange tak for det...
Avatar billede zaico Nybegynder
27. maj 2003 - 15:43 #6
..
Avatar billede roenving Novice
27. maj 2003 - 15:43 #7
?-)
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

IT-JOB

Politiets Efterretningstjeneste

Configuration Manager til PET's IT-afdeling

Paychex Europe

Scrum Master

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Netcompany A/S

IT Consultant