<script type="text/javascript">
//<![CDATA[
/*
* Tunnus: Kalkulaattori; eurolaskin
* Tekijä: Osmo Saarikumpu
* Tehty: 2009-10-13
* Tekijänoikeudet: Vapaasti käytettävissä
*/
/* Ilmotetaan laskutoimituksen suorittava funktio,
jota kutsutaan lomakkeen painikkeella. */
function muunnaValuutta() {
/* Ilmotetaan muutama funktiossa käytetty muuttuja: */
//euron kurssi:
var kurssi = 5.94573;
//käyttäjän syöte:
var syote;
//merkkimuunnoksen apumuuttuja:
var apuri = "";
//syöte liukulukuna:
var summa;
//valuuttamuunnoksen tulos:
var tulos;
//lyhennetty viittaus tulosalueeseen:
var alue = document.getElementById('tulosalue');
/* Sijoitetaan käyttäjän syöttämä arvo muuttujaan: */
syote = document.laskin.syotealue.value;
/* Poistetaan syötteen mahdolliset tyhjämerkit,
esim. jos miljoona on muodossa 1 000 000: */
syote = syote.replace(/\s+/g,'');
/* Luodaan rutiini, joka tarvittaessa muuttaa
syötetyn arvon pilkun pisteeksi: */
//suoritetaan silmukka:
for(var i=0;i<syote.length;i+=1) {
//kunnes arvon kaikki merkit on käyty läpi:
var merkki = syote.charAt(i);
if (merkki == ',') {//jos merkki on pilkku
merkki = '.';//muutetaan se pisteeksi
}
apuri += merkki;//kasataan merkit takaisin apumuuttujaan
}
/* Sijoitettan mahdollisesti muuttunut arvo
liukulukuna muuttujaan: */
summa = parseFloat(apuri);
/* Tarkastetaan onko arvo numero: */
if (isNaN(summa)) {//jollei ole numero:
//tulostetaan virhesanoma:
alert('Muuntotoiminto syö vain numeroita!');
//tyhjennetään tulosalue:
alue.innerHTML = '';
//lopetetaan funktio:
return;
}
/* Pyöristetyt laskutoimitukset suuntaan tai toiseen.
Arvo tulos-muuttujaan kahdella desimaalilla: */
else if (document.laskin.m2e.checked) {
//jos valintaruutu markoista euroihin:
tulos = (Math.round((summa/kurssi)*100)/100).toFixed(2);
//lisätään euron symboli:
tulos += " €";
}
else {
//muuten euroista markkoihin:
tulos = (Math.round((summa*kurssi)*100)/100).toFixed(2);
//lisätään markan tunnuskoodi:
tulos += " FIM";
}
/* Sijoitetaan tulos tulosalueelle: */
alue.innerHTML = tulos;
}
//]]>
</script>
<form
action=""
name="laskin"
id="laskin">
<table
border="1"
cellspacing="2"
cellpadding="2">
<caption>Lomakkeella muunnetaan euromääriä markoiksi
(tai päinvastoin).</caption>
<tr>
<td>
<label
for="syotealue">Syötä muunnettava summa:
</label>
</td>
<td>
<input
value=""
name="syotealue"
id="syotealue" />
</td>
</tr>
<tr>
<td>
<label
for="m2e">Markoista euroiksi:
</label>
<input
type="checkbox"
name="m2e"
id="m2e"
value="" />
</td>
<td align="center">
<input
type="button"
value="Muunna"
onclick="muunnaValuutta()" />
</td>
</tr>
<tr>
<td colspan="2">
Tulos:
<span
id="tulosalue"
style="color:red">
</span>
</td>
</tr>
</table>
</form>
Tämä sivu kuuluu vaikeimpiin JavaScript-esimerkkeihin.