Tulork Medlem sedan aug. 2004 903 inlägg Frågan 23 apr. 2008 22:52 #1 Är på jakt efter ett litet javascript som kan med hjälp av två vanliga <a href""> länkar öka och minska en siffra i ett fält. Samtidigt som denna siffran ökar eller minska, ska också en annan variabel öka och minska.
Exempel
statisk variabel = 100
Trycker på öka knappen: 1gång
statisk variabel = 99
trycker på minska länken: 1gång
statisk variabel = 100
Den statiska variablen får aldrig gå över 100 eller under 0
Den totala summan i fälten får aldrig överstiga den statiska variablens värde, eller understiga.
Alltså... man har 100p och ska fördella dessa mellan..låt oss säga 5 fält. Lätt att lösa? Borde inte vara så krångligt tycker jag..men hittar inget exempel att utgå ifrån så att jag själv kan bygga vidare.
stattin Medlem sedan jan. 2005 713 inlägg red/ Att jag inte lär mig läsa klart frågan..
Det finns kanske smidigare sätt att lösa det på?
<a href="javascript:plus()">Öka</a>
<a href="javascript:minus()">Minska</a>
<a href="javascript:dela()">dela</a>
<form name="falt">
<input type="text" name="ett">
<input type="text" name="tva">
<input type="text" name="tre">
<input type="text" name="fyr">
<input type="text" name="fem">
</form>
<script type="text/javascript">
nr = "100"
function plus() {
nr++
if(nr > "100"){ nr = "100"; }
alert(nr)
}
function minus() {
nr = nr-1
if(nr < "0"){ nr = "0"; }
alert(nr)
}
function dela() {
delad = nr/5
document.falt.ett.value = delad
document.falt.tva.value = delad
document.falt.tre.value = delad
document.falt.fyr.value = delad
document.falt.fem.value = delad
}
</script>
stattin Medlem sedan jan. 2005 713 inlägg om du vill kan du ju runda av talen i fälten med Math.round()
Tulork Medlem sedan aug. 2004 903 inlägg Tack för det. Jag har nu en grund att bygga vidare på :)
Y yador Medlem sedan mars 2004 455 inlägg Detta är en bättre version av stattin:s kod om du vill ha den
<script type="text/javascript">
nr = 100;
function plus() {
if(nr < 100)
nr++;
}
function minus() {
if(nr > 0)
nr--;
}
function dela() {
for(a=0,elm=document.falt.getElementsByTagName("input");a<elm.length;a++)
elm[a].value = nr/elm.length;
}
</script>
stattin Medlem sedan jan. 2005 713 inlägg ja eller så gör man så här:
<form name="falt">
<input type="text" name="ett">
<input type="text" name="tva">
<input type="text" name="tre">
<input type="text" name="fyr">
<input type="text" name="fem">
</form>
<script type="text/javascript">
nr = 100;
function dela() {
for(a=0,elm=document.falt.getElementsByTagName("input");a<elm.length;a++)
elm[a].value = nr/elm.length;
}
</script>
<a href="#" onclick="if(nr < 100); nr++; return false;">Öka</a>
<a href="#" onclick="if(nr > 0); nr--; return false;">Minska</a>
<a href="javascript:dela()">dela</a>
Vad bra nu fick jag lära mig att man kan skriva ex. nr-- också. :bire
Y yador Medlem sedan mars 2004 455 inlägg Men det är ingen förbättring. Koden kommer dessutom inte att fungera korrekt pga att du stänger if satsen innan du ökar/minskar värdet i nr.