Komma bei Inputfeld Eingabe

kwniwi

Grünschnabel
Hallo zusammen,

ich möchte, dass in einem Formularfeld die Zahleneingabe mit Komma akzeptiert wird.
Ich habe Eingabefelder ("Anzahl_Artikelxxx") und mehrere Ausgabefelder. Bei den Ausgabefeldern klappt die Ausgabe mit dem Komma problemlos. Bei der Eingabe bekomme ich immer die NaN Warnung.

Habt jemand eine Lösung****

Die Zeile
Code:
Anzahl_Artikel1 = parseFloat( document.order.Anzahl_Artikel1.value.replace(/,/ , ".") );
]
war nur ein Test für das erste Eingabefeld.

Hier mal der komplette Code:
Code:
	<SCRIPT language="Javascript">
function dummy(){
return false
};

function dummygood()
{
};

function Frage()
{
if (confirm('Wollen Sie wirklich alle Eingaben loeschen?'))
{alert("Alle Eingaben wurden geloescht!");
return true;}
else {alert("Alle Eingaben wurden beibehalten!")};
dummygood();
return false};




// Gesamtbetrag
   var Itemsteuer = 119 / 100;
   var Versandsteuer = 100 / 100;
function Total() {
   var tot = 0;
   var totalall = 0;
   Versandkostenx = 3.00;
   var Versandkosten = Versandkostenx;
   Versandkosten = 0;

Anzahl_Artikel1 = parseFloat( document.order.Anzahl_Artikel1.value.replace(/,/ , ".") );
 
 
   tot += (5.84033 * document.order.Anzahl_Artikel1.value);
   tot += (11.34453 * document.order.Anzahl_Artikel2.value);
   tot += (26.89075 * document.order.Anzahl_Artikel3.value);
   tot += (40.33613 * document.order.Anzahl_Artikel4.value);
   tot += (5.12605 * document.order.Anzahl_Artikel5.value);
   tot += (5.63025 * document.order.Anzahl_Artikel6.value);
   tot += (8.31932 * document.order.Anzahl_Artikel7.value);
   tot += (4.53781 * document.order.Anzahl_Artikel8.value);
   tot += (9.07563 * document.order.Anzahl_Artikel9.value);
   tot += (6.38655 * document.order.Anzahl_Artikel10.value);
   tot += (12.7731 * document.order.Anzahl_Artikel11.value);
   tot += (10.16806 * document.order.Anzahl_Artikel12.value);
   tot += (6.55462 * document.order.Anzahl_Artikel13.value);
   tot += (6.63865 * document.order.Anzahl_Artikel14.value);
   tot += (2.43697 * document.order.Anzahl_Artikel15.value);
   
   document.order.Gesamtbestellung.value = (tot.toFixed(2)).replace(/\./g,","); 

   if (tot == 0) {Versandkosten == 0}

   else {Versandkosten = Versandkostenx};
   document.order.Versandkosten.value = (Versandkosten.toFixed(2)).replace(/\./g,",");


 
// Steuern getrennt berechnen:
   Bestellsteuerbetrag =  (Itemsteuer * tot) - tot;
   Versandkostensteuer = (Versandsteuer * Versandkosten) - Versandkosten;	
   AusgewSteuer = Bestellsteuerbetrag + Versandkostensteuer;
  document.order.AusgewSteuer.value = (AusgewSteuer.toFixed(2)).replace(/\./g,",");
   document.order.Rechnungsbetrag.value = ((AusgewSteuer + tot + Versandkosten).toFixed(2)).replace(/\./g,",");

};

// Wenn Menge geaendert berechne einmal den 
function UpdateBetrag(number, Einzelkosten, Inklusivbetrag) {
     qtyname = "Anzahl_Artikel" + number;
   costname = "Betrag" + number;
   Steuername = "Inklusivbetrag" + number;
   var q = document.order[qtyname].value;
   document.order[costname].value = ((q * Einzelkosten).toFixed(2)).replace(/\./g,",");
   document.order[Steuername].value = ((q * Einzelkosten * Itemsteuer).toFixed(2)).replace(/\./g,",");

  
   Total();
}

// Adressen
function CopyAddress() {
   if (document.order.same.checked) {
      document.order.Versandanschrift.value = 
     document.order.Rechnungsanschrift.value;
      document.order.PLZversand.value = document.order.PLZrechnung.value;
      document.order.Staatversand.value = document.order.Staatrechnung.value;
   }
if (document.order.same.unchecked) {
     document.order.Rechnungsanschrift.value == "";
	 document.order.PLZrechnung.value == "";	 
	 		}
}

// main validation function

var errfound = false;
//function to validate by length
function ValidLength(item, len) {
   return (item.length >= len);
}
 
Das heißt du willst als Zahl zum Beispiel "15,55" eingeben und daraus soll dann "15.55" werden?

Code:
document.order.Anzahl_Artikel1.value = parseFloat( document.order.Anzahl_Artikel1.value.replace("," , ".") );

Über die Namensgebung kann man auch geteilter Meinung sein, eine Variable mit dem Namen "tot". Na ja, ich hätte es ausgeschrieben und "total" genannt.
 
Erstmal danke!
Wenn ich diese Zeile eingebe, wandelt sich das Komma zwar in Punkt um, aber das Skript "erkennt" es irgendwie noch nicht. Als Ausgabe kommt immer noch NaN... ?
 
Ich vermute mal du redest von der Funktion Total? Habe zum Testen die Funktion mal auf die Zeilen gekürzt auf die es ankommt und bei mir klappt es so:

HTML:
<script language="javascript" type="text/javascript">

function Total() {
var tot = 0;
var totalall = 0;
Versandkostenx = 3.00;
var Versandkosten = Versandkostenx;
Versandkosten = 0;

document.order.Anzahl_Artikel1.value = parseFloat( document.order.Anzahl_Artikel1.value.replace("," , ".") );

tot += (5.84033 * document.order.Anzahl_Artikel1.value);

document.order.Gesamtbestellung.value = (tot.toFixed(2)).replace(/\./g,",");

}

</script>

<form name="order" action="" method="">
<input type="text" name="Anzahl_Artikel1" value="" size="20" maxlength="50" onblur="Total();"/>
<br />
<input type="text" name="Gesamtbestellung" value="" size="20" maxlength="50" />
</form>
 
Ahhh, die Funktion wars. Danke für den Gedankenanstoss! Ich hab die Zeile in die Funktion "UpdateBetrag" gesetzt und nun funktioniert es !!
Danke für die schnelle Hilfe!
 
Zurück