webForumDet fria alternativet

Ändra pris beroende på antal

JavaScriptur Javascript

5 svar · 542 visningar · startad av 250km/h

250km/hMedlem sedan juli 200183 inlägg
#1

Jag har en sida där man får välja storlek och sedan antal, jag vill att man skall se priset omedelbart efter de två valen;

<script lanugage=javascript>
<!--
function Calc(iMax){
var iResult=0
for(var i=1; i<=iMax; i++){
var selValue=eval("document.f_Conf.sel"+i+".options[document.f_Conf.sel"+i+".selectedIndex].value")
var prize=parseFloat(selValue.split(":"));
if(isNaN(prize)){ prize=0; }
iResult+=prize
}
document.f_Conf.txtResult.value = iResult;
}
-->
</script>
<form name=f_Conf>

        <select name=sel1 onChange=javascript:Calc('2');>
		<option selected value=>Välj Storlek</option>
          <option value=1000:A4>A4</option>
          <option value=800:A5>A5</option>
        </select>
        <select name=sel2 onChange=javascript:Calc('2');>
          <option selected value=>Välj Antal</option>
          <option value=-10:10>10st</option>
          <option value=-20:20>20st</option>
          <option value=-30:30>30st</option>
        </select>
        <input type=text name=txtResult>
</FORM>

Denna kod är lite modifierad men jag hittade den här på wF, jag vill dock ha procentsatser som det multipliceras med, hur gör jag för att ändra det?
Det verkliga priset kommer räknas ut på serversidan så det gör inget om det är fulkod, bara man får en översikt av priset på det man beställer.

Jesper TMedlem sedan nov. 20017 144 inlägg
#2
<script lanugage=javascript>
<!--
function Calc(){
var iResult=0
var sel1Value=document.f_Conf.sel1.options[document.f_Conf.sel1.selectedIndex].value
var sel2Value=document.f_Conf.sel2.options[document.f_Conf.sel2.selectedIndex].value
var prize=parseFloat(sel1Value.split(":"));
var discount=parseFloat(sel2Value.split(":"));

prize = (prize/100)*discount;

if(isNaN(prize)){prize=''}
document.f_Conf.txtResult.value = prize;
};
-->
</script>
<form name=f_Conf>

        <select name=sel1 onChange=javascript:Calc();>
          <option selected value=>Välj Storlek</option>
          <option value=1000:A4>A4</option>
          <option value=800:A5>A5</option>
        </select>
        <select name=sel2 onChange=javascript:Calc();>
          <option selected value=>Välj Antal</option>
          <option value=[red]100[/red]:10>10st</option>
          <option value=[red]90[/red]:20>20st</option>
          <option value=[red]80[/red]:30>30st</option>
        </select>
        <input type=text name=txtResult>
</FORM>

Där 100, 90 och 80 motsvarar procent av priset.
Men du kanske menar procent rabatt?

Jesper TMedlem sedan nov. 20017 144 inlägg
#3

Se upp med lanugage och name-attribut på dina element/taggar, de är passé.
Här är om du vill ha rabattprocent.

<script type="text/javascript">
<!--
function Calc(){
var iResult=0
var sel1Value=document.f_Conf.sel1.options[document.f_Conf.sel1.selectedIndex].value
var sel2Value=document.f_Conf.sel2.options[document.f_Conf.sel2.selectedIndex].value
var prize=parseFloat(sel1Value.split(":"));
var discount=parseFloat(sel2Value.split(":"))/100;

prize = prize-(prize*discount);

if(isNaN(prize)){prize=''}
document.f_Conf.txtResult.value = prize;
};
-->
</script>
<form name=f_Conf>
        <select name=sel1 onChange=javascript:Calc();>
	  <option selected value=>Välj Storlek</option>
          <option value=1000:A4>A4</option>
          <option value=800:A5>A5</option>
        </select>

        <select name=sel2 onChange=javascript:Calc();>
          <option selected value=>Välj Antal</option>
          <option value=0:10>10st</option>
          <option value=10:20>20st</option>
          <option value=20:30>30st</option>
        </select>

        <input type=text name=txtResult>
</FORM>
250km/hMedlem sedan juli 200183 inlägg
#4

Stort tack, det blev ruggigt stiligt! Skickligt!
Hur gör man för att även skriva ut det som vanligt mellan <P>XX</P>?

Jesper TMedlem sedan nov. 20017 144 inlägg
#5

Lägg till <P id="result"></P> på din sida.

Byt ut:
document.f_Conf.txtResult.value = prize;

Mot:
document.getElementById("result").innerHTML = prize;

BTW: du kan även ta bort var iResult=0 i din kod, fyller ingen funktion.

TroxyMedlem sedan mars 20041 505 inlägg
#6

Jesper T skrev:

Se upp med lanugage och name-attribut på dina element/taggar, de är passé.

...för att inte tala om att omsluta sin kod med <!-- --> ;)

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