Supportnet / Forum / Skripte(PHP,ASP,Perl...)
eine null (oder währung) hinter der berechnung?
Frage
hi,
ich habe da ein script welches auf der seite online mit einem berechnung button einen preis aus mehreren feldern zusammenrechnet, es funktioniert auch gut, nur zeigt er z.b. nicht "19.90 Euro" an, sondern "19.9", wie kann ich dort zumindest noch eine null ans ende bekommen?
ich poste sicherheitshalber noch mal
das script:
im head steht:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function KW_getVal(o){
var retVal="0";if (o.type=="select-one")
{retVal=(o.selectedIndex==-1)?0:o.options[o.selectedIndex].value;}
else if (o.length>1){for (var i=0;i<o.length;i++) if (o[i].checked) retVal=o[i].value;
} else if (o.type=="checkbox") {retVal=(o.checked)?o.value:0;} else {
retVal=Number(o.value)}return parseFloat(retVal);
}
function KW_calcForm() {
var str="",a=KW_calcForm.arguments; for (var i=2;i<a.length;i++)
str+=(a[i].indexOf("#")==-1)?a[i]:KW_getVal(MM_findObj(a[i].substring(1)));
MM_findObj(a[0]).value=Math.round(a[1]*eval(str))/a[1];
}
//-->
</script>
Die Button Zeile:
<a href="#endpreis"><img src="../img/preis_button.gif" width="181" height="30" border="0" onClick="KW_calcForm('endpreis',100,'#menge1','*','#preis1','+','#menge2','*','#preis2','+','#menge3','*','#preis3','+','#menge4','*','#preis4','+','#menge5','*','#preis5','+','#menge6','*','#preis6','+','#porto')">
so, ich hoffe ihr kommt damit besser klar, bin für jede antwort dankbar, javascript ist nicht so mein ding.#
vielen dank
Antwort 1 von Dr.Ma-Busen
Hallo!
Ersetze mal folgende zeile:
durch folgendes:
Dann sollte es Funktionieren
MfG
Dr.Ma-Busen
Ersetze mal folgende zeile:
MM_findObj(a[0]).value=Math.round(a[1]*eval(str))/a[1];
durch folgendes:
var wert = Math.round(a[1]*eval(str))/a[1];
var such = /(\d+)\.(\d)$/;
if(such.test(wert)){
such.exec(wert);
wert = RegExp.$1+"."+RegExp.$2+"0";
}
MM_findObj(a[0]).value = wert;
Dann sollte es Funktionieren
MfG
Dr.Ma-Busen
Antwort 2 von Micha@agame.de
klasse, wenn du weiblich wärst, könnte ich dich küssen.
aber so, lege ich mich an deinen busen, und sage DANKE :-)
Gruß,
micha
aber so, lege ich mich an deinen busen, und sage DANKE :-)
Gruß,
micha