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);
}