Oppgave 2
Lag en webside med en tekstboks og en knapp. Lag så en array med antall dager i hvermåned. Antall dager i januar skal da være på indeks 0, februar på indeks 1 osv. I tekstboksen skal du så kunne skrive inn nummeret på en måned (1-12), og få ut antall dager i denne måneden. Du kan her se bort i fra skuddår. Utvid så koden til å også gi ut navnet på måneden hentet fra en annen array.
Resultat
Koden
JavaScript
window.onload = ready;
function ready() {
var output = document.getElementById("o2-output");
var input = document.getElementById("o2-input");
var lastInput = 0;
document.getElementById("o2-run").onclick = function() {
output.innerHTML = getMonthDays(input.value);
}
input.onkeypress = function(e) {
e.preventDefault(); // Stop vanlig input
var thisInput = String.fromCharCode(e.which); // Sett gjeldene verdi til trykket tast
// Hvis forrige verdi satt sammen med gjeldene verdi er større enn 12
if ((lastInput + thisInput) > 12) {
input.value = thisInput; // Sett input til gjeldene verdi
} else if (input.value.length != 0) { // Sjekk at feltet ikke var tomt når vi kjørte
input.value = parseInt(lastInput + thisInput);
} else {
input.value = thisInput; // Kjører når feltet var tomt
}
output.innerHTML = getMonthDays(input.value);
// Sett forrige input til gjeldene
lastInput = thisInput;
}
}
function getMonthDays(month) {
var date = new Date();
var months = [];
for (var i = 1; i <= 12; i++) {
months[i] = {
name: getMonthInfo("name", date.getYear(), i),
days: getMonthInfo("days", date.getYear(), i)
}
}
if (month <= 12 && month >= 1) {
return "<b>" + months[month].days + "</b> dager i <b>" + months[month].name + "</b> " + date.getFullYear();
} else {
return "Skriv inn et gyldig månedsnummer (mellom 1 og 12)"
}
return false;
}
function getMonthInfo(get, year, month) {
var monthNames = [
"januar",
"februar",
"mars",
"april",
"mai",
"juni",
"juli",
"august",
"september",
"oktober",
"november",
"desember"
]
if (get == "days") {
return new Date(year, month, 0).getDate();
} else if (get == "name") {
return monthNames[month-1];
}
return false;
}
HTML
<div class="row input-field">
<input id="o2-input" class="col s10" type="number" min="1" max="12" placeholder="Skriv inn et månedsnummer (F.eks. 2)">
<button id="o2-run" class="btn black col s2">Kjør</button>
</div>
<p id="o2-output"></p>