Tänkte göra ett litet skript som skulle se till att en viss <select> är disabled tills en annan <select> får ett värde. Såhär:
javascript:
window.onload=function() {
var r = document.getElementById("month");
r.setAttribute("disabled","disabled");
var s = document.getElementById("year");
s.addEventListener("change", ena(), false);
}
function ena() {
var s = document.getElementById("year");
var r = document.getElementById("month");
if (s.value != "") {
r.removeAttribute("disabled")
} else {
r.setAttribute("disabled","disabled");
}
}
html:
<div>
<label for="year">År</label>
<select name="year" id="year">
<option value="" selected="selected">-</option>
<option value="2005">2005</option>
<option value="2004">2004</option>
<option value="2003">2003</option>
</select>
</div>
<div>
<label for="month">Månad (får bara väljas om år är valt)</label>
<select name="month" id="month">
<option value="" selected="selected">-</option>
<option value="01">januari</option>
<option value="02">februari</option>
<option value="03">mars</option>
<option value="04">april</option>
<option value="05">maj</option>
<option value="06">juni</option>
<option value="07">juli</option>
<option value="08">augusti</option>
<option value="09">september</option>
<option value="10">oktober</option>
<option value="11">november</option>
<option value="12">december</option>
</select>
Det fungerade inte helt bra.
Har några frågor.
Händelsen change är en HTMLevent . Stöder alla läsare det? Ska man testa det innan man kör skriptet?
Mina variabler, hur definierar jag dem globalt så att jag kommer åt dem i båda funktionerna.?
Varför fungerar det så dåligt? Min eventlistener verkar inte anropas när jag ändrar selecten för år. Ska jag förresten definiera den utanför window.onload? Testade det och den anropas inte som den ska ändå.
Hoppas någon kan reda ut det här för mig. Inte särskilt van vid DOM och javascript.