Ich bin nicht so gut mit JS und aus irgendeinem Grund, wenn ich versuche, zwei Felder zusammenzufügen, verbindet sie sie, anstatt die Summe zusammenzufügen .. das ist der Code, den ich versuche zu verwenden ..
%Vor%Die totalVal gibt zurück / alarmiert 68.50378.00 anstatt sie zusammen zu addieren. Könnte mir bitte jemand sagen, wo ich falsch gelaufen bin? :( Die Idee ist, das "totale" Textfeld mit totalVal zu aktualisieren, aber ich bin noch nicht so weit gekommen!
Sie müssen Ihre Werte in einen Gleitkommawert konvertieren, bevor Sie sie hinzufügen:
%Vor%EDIT: Hier ist ein komplettes Beispiel, das eine Überprüfung für NaN enthält:
%Vor%Jeder andere hat die richtige Idee mit parseFloat .
Ich wollte nur erwähnen, dass ich lieber solche numerischen Werte bereinige (im Gegensatz zur Analyse mit substr):
%Vor%Dieser Ersetzungsaufruf entfernt alle Zeichen aus der Zeichenfolge außer 0-9 und . (Punkt). Nicht das / g am Ende der Regex. Das ist wichtig, weil ohne sie nur das erste übereinstimmende Vorkommen ersetzt wird.
Es behandelt Porto und Zwischensumme als Zeichenfolgen und verkettet sie. Sie könnten so etwas versuchen:
%Vor%Das sollte es in den Zahlenmodus zwingen.
Dies kann jedoch zu Problemen führen, wenn die Werte keine Zahlen sind. Sie sollten es durch die richtige Anzahl Parsing-Funktionen ausführen und hinzufügen, um sicherzustellen, dass sie richtig analysiert oder sonst Sie mit NaN.
Nachdem ich die gleichen Probleme hatte, untersuchte ich die Funktionen JS parseFloat
und parseInt
und fand sie schlecht entwickelt.
Also verhindere ich das ganze Problem, indem ich den Wert * 1
des Elements multipliziere, bevor ich sie addiere. Dadurch wird JS gezwungen, das Ergebnis als numerisch zu behandeln, auch wenn der Wert leer ist, damit er korrekt verarbeitet werden kann. Wie folgt:
Angenommen, Sie sehen, dass "el_1" und die Feldnamen in der Form sind.
Danke für alle Antworten! Ich werde sie ausprobieren, ich bin mir sicher, dass sie besser sind als meine Lösung:
%Vor%Tags und Links javascript math