webForumDet fria alternativet

Öka<->Minska värde

7 svar · 703 visningar · startad av Tulork

TulorkMedlem sedan aug. 2004903 inlägg
#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.

stattinMedlem sedan jan. 2005713 inlägg
#2

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>
stattinMedlem sedan jan. 2005713 inlägg
#3

om du vill kan du ju runda av talen i fälten med Math.round()

TulorkMedlem sedan aug. 2004903 inlägg
#4

Tack för det. Jag har nu en grund att bygga vidare på :)

yadorMedlem sedan mars 2004455 inlägg
#5

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>
stattinMedlem sedan jan. 2005713 inlägg
#6

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

yadorMedlem sedan mars 2004455 inlägg
#7

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.

stattinMedlem sedan jan. 2005713 inlägg
#8

sant.. gjorde fel :r

126 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)