250km/h Medlem sedan juli 2001 83 inlägg Frågan 21 dec. 2007 11:42 #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 T Medlem sedan nov. 2001 7 144 inlägg <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 T Medlem sedan nov. 2001 7 144 inlägg 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/h Medlem sedan juli 2001 83 inlägg 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 T Medlem sedan nov. 2001 7 144 inlägg 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.
Troxy Medlem sedan mars 2004 1 505 inlägg
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 <!-- --> ;)