Währungsformatierung

AlexD1979

Erfahrenes Mitglied
Hi, ich habe mir ein paar Funktionen geschrieben, die das Eingabeformat in xxxx.yy formatieren sollen wenn die Eingabe xxxx,yy ist. Beim ersten Durchlauf soweit ok, aber er merkt dann nicht, wenn dort schon ein Punkt steht, dass er stoppen muss sondern macht dann ein xxxx davon, also gänzlich ohne Punkt

Code:
//Berechnen des Volumens	
	var x = eval(document.if_form.c_id_length.value);
	var y = eval(document.if_form.c_id_width.value);
	var z = eval(document.if_form.c_id_height.value);	
	alert(kaufm((eval(x*y*z*0.000000001))));	
	document.if_form.c_id_volume.value = kaufm((eval(x*y*z*0.000000001)));	
...


function InZahl(Wert)  {
  	if(ValidCheck(Wert)) {
	  var PosPunkt = Wert.indexOf(".",0);
	  var PosKomma = Wert.indexOf(",",0);
	  if (PosKomma < 0) PosKomma = Wert.length;
	
	  while ((0 <= PosPunkt) && (PosPunkt < PosKomma))
	    {
	    Wert = Wert.substring(0, PosPunkt) + Wert.substring(PosPunkt + 1, Wert.length);
	    PosPunkt = Wert.indexOf(".",0);
	    PosKomma--;
	    }	
	  
	  PosKomma = Wert.indexOf(",",0);
	  if (PosKomma >= 0)
	    {
	    Wert = Wert.substring(0, PosKomma) + "." + Wert.substring(PosKomma + 1, Wert.length);
	    }		 
	  return parseFloat(Wert);
	  } else {
	  	alert("Falsches Zahlenformat in Abmessungen!\n Erlaubte Werte 00000,00");
		return Wert;
	  }
}

function ValidCheck (Eingabe) {
  var valid = "0123456789.,";
  for (var i = 0; i < Eingabe.length; i++)
    if (valid.indexOf(Eingabe.charAt(i)) < 0)
      return false;
  return true;
}

function kaufm(x) {  
  alert("x"+x);
	var t = x.indexOf(".");
	alert(t);
  var k = (Math.round(x * 100) / 100).toString();
  k += (k.indexOf('.') == -1)? '.00' : '00';
  return k.substring(0, k.indexOf('.') + 3);
}
 
Ohne deine Funktionrm angesehen zu haben. Ich würde es so machen:
HTML:
<script type="text/javascript">
 <!--
 function rechne(){
 	input = document.getElementById('X1').value;
 	output = Number(input.replace(/^(\d+)\,(\d*)$/,"$1.$2")).toFixed(2)
 	document.getElementById('Ergebnis').value = isNaN(output) ? 'Fehlerhafte Eingabe' : output;
 }
 -->
 </script>
 <form action="" method="POST"><div>
 	<input type="text" id="X1" onkeyup="rechne()" /><br /> 
 	<input type="text" id="Ergebnis" readonly="readonly" />
 </div></form>
Hab's jetzt so geschrieben, dass du's gleich testen kannst. Wirst es dir umschreiben müssen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück