Oppgave 7

Lag en kalkulator som utfører beregninger basert på selvvalgt brukerdata (ikke BMI som er benyttet som eksempel i kurset). Kalkulatoren skal minst inneholde en tekstboks og en nedtrekksliste. Tips: I nedtrekkslisten har du satt tallverdier som "value". Disse benyttes som en del av beregningen.

Resultat

Koden

JavaScript

                
window.onload = ready;

function ready() {
    document.getElementById("o7-input").onkeyup = calculate; // Gjør utregning når bruker skriver inn noe
    document.getElementById("o7-unit").onchange = calculate; // Gjør utregning når bruker skifter måleenhet.
}

function calculate() {
    var outputs;
    // Ready...
    // Get set...
    switch (document.getElementById("o7-unit").value) {
        // Go!
        case "mm":
            outputs = {mm: 1, cm: 0.1, m: 0.001, km: 0.000001, mil: 0.0000001};
            break
        case "cm":
            outputs = {mm: 10, cm: 1, m: 0.01, km: 0.00001, mil: 0.000001};
            break
        case "m":
            outputs = {mm: 1000, cm: 100, m: 1, km: 0.001, mil: 0.0001};
            break
        case "km":
            outputs = {mm: 1000000, cm: 100000, m: 1000, km: 1, mil: 0.1};
            break
        case "mil":
            outputs = {mm: 100000000, cm: 10000000, m: 100000, km: 0.1, mil: 1};
            break
        default:
            alert("Du må velg en enhet");
            break
    }

    // Loop gjennom objektet
    for (var key in outputs) {
        if (outputs.hasOwnProperty(key)) {
            // Sett hver output
            document.getElementById("o7-output-" + key).value = document.getElementById("o7-input").value * outputs[key];
        }
    }
}
                
            

HTML

                
<div class="row">
    <div class="input-field col s12 m6">
        <input id="o7-input" type="number" placeholder="Skriv et tall, f.eks: 100">
    </div>
    <div class="input-field col s12 m6">
        <select id="o7-unit">
            <option value="mm">Millimeter</option>
            <option value="cm">Centimeter</option>
            <option value="m" selected>Meter</option>
            <option value="km">Kilometer</option>
            <option value="mil">Mil</option>
        </select>
    </div>
    <div class="s12 row">
        <div class="input-field s12">
            <input type="text" id="o7-output-mm" class="col s7" disabled>
            <label class="col s4 right" for="o7-output-mm">Millimeter</label>
        </div>
        <div class="input-field s12">
            <input type="text" id="o7-output-cm" class="col s7" disabled>
            <label class="col s4 right" for="o7-output-cm">Centimeter</label>
        </div>
        <div class="input-field s12">
            <input type="text" id="o7-output-m" class="col s7" disabled>
            <label class="col s4 right" for="o7-output-m">Meter</label>
        </div>
        <div class="input-field s12">
            <input type="text" id="o7-output-km" class="col s7" disabled>
            <label class="col s4 right" for="o7-output-km">Kilometer</label>
        </div>
        <div class="input-field s12">
            <input type="text" id="o7-output-mil" class="col s7" disabled>
            <label class="col s4 right" for="o7-output-mil">Mil</label>
        </div>
    </div>
</div>