Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: JavaScript: Javascript: aika ja siihe liittyvät funktiot

UnderSTreet [26.11.2008 22:55:15]

#

nappasin täältä ohjelmointiputkasta (kai) seuraavan koodin

<html>

<head>

<title>Kello JavaScriptillä</title>

<script type = "text/javascript">

function Kello()
{
    var aika = new Date();

    var sekunnit = aika.getSeconds();



    var tama_hetki = sekunnit;

    document.kello.aika.value = tama_hetki;

    setTimeout("Kello()", 1000);
}

</script>

</head>

<body onload = "Kello()">

    <form name = "kello">

        <input type = "text" name = "aika" size = "30" style = "border: 0px;">

    </form>

</body>

</html>

nyt olen jonkin aikaa yrittänyt ohjelman tekemään vähän sitä sun tätä kun sekuntit ovat siinä ja siinä pisteessä (esim. kun sekuntteja on 55, tulee alert ja huutaa: "nyt!!").

olen yrittänyt vähän vaikka mitä tapoja laittamalla esim.

if(tama_hetki == "30")
{
   alert("nyt");
}

tai:

if(document.kello.aika.value == "30")
{
   alert("nyt!!")
}

- kyllä, olen yrittänyt ottaa heittomerkit pois
- kyllä olen yrittänyt jok'ikisen document.jotain.value tilpehöörin läpi kuudesti
- kyllä olen 14 vuotias vasta-alkaja
- ei, en ole löytänyt mistään kyseiseen probleemaan vastausta (en ole kysynytkään ennen kuin nyt)
- kyllä olen tallentanut .html muotoon xD
- ja en muista mistä/keneltä tuon koodin repäisin!

elikkä apua tarvittaisiin.

EDIT: vähäsen värkkäsin, ja sain toimimaan xD (piti laittaa se if-lauseke funktion sisään >_<)
eli ratkaistu juttu :P

Grez [26.11.2008 23:18:09]

#

Joo no mäkin jo ihmettelin että mikä ongelma on, kun testasin seuraavalla ja hyvin toimi:

<html><head>
<title>Kello JavaScriptillä</title>
<script type = "text/javascript">
function Kello()
{
    var aika = new Date();

    var sekunnit = aika.getSeconds();

    var tama_hetki = sekunnit;

    document.kello.aika.value = tama_hetki;
	if(tama_hetki == 30)
	{
		alert("nyt");
	}
    setTimeout("Kello()", 1000);
}
</script></head>
<body onload = "Kello()">
    <form name = "kello">
        <input type = "text" name = "aika" size = "30" style = "border: 0px;">
    </form>
</body></html>

jlaire [26.11.2008 23:22:25]

#

UnderSTreet kirjoitti:

olen yrittänyt vähän vaikka mitä tapoja laittamalla esim.

Mihin tarkkaan ottaen laitoit tuon tarkistuksen? Edit: Olinpa hidas.

Tuosta koodipätkästä löytyy muuten muutama hyvä esimerkki siitä, miten asioita ei kannata tehdä.

- Älä laita välejä yhtäsuuruusmerkin ympärille HTML:ssä: ei name = "kello" vaan name="kello".
- Ei näin:

setTimeOut("Kello()", 1000);

vaan näin:

setTimeOut(Kello, 1000);

- Lisäksi IMO hyvä tapa on aloittaa tavallisten funktioiden nimet pienellä alkukirjaimella ja konstruktoreiden isolla, eli ei Kello vaan kello.

http://javascript.crockford.com/code.html:

Constructor functions which must be used with the new prefix should start with a capital letter. JavaScript issues neither a compile-time warning nor a run-time warning if a required new is omitted. Bad things can happen if new is not used, so the capitalization convention is the only defense we have.

UnderSTreet [27.11.2008 00:02:07]

#

itte olisin varmaan laittanutkn kello, enkä Kello, mutten tehnyt tota koodia :P

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta