Ich versuche, einige jQuery-Funktionen zu verwenden, um die Werte von zwei number_field
's in Schienen zu multiplizieren.jQuery multipliziert keine Zahlen richtig
Mein jQuery-Code, ist dies:
$('#mycometer_coc_sample_bv1').change(function() {
$('#cv').empty();
var BV1 = $('#mycometer_coc_sample_bv1').val();
var BV2 = $('#mycometer_coc_sample_bv2').val();
$('#mycometer_coc_sample_cv').val((BV2 - BV1)*0.84 + BV2);
$('#cv').append($('#mycometer_coc_sample_cv').val());
});
$('#mycometer_coc_sample_bv2').change(function() {
$('#cv').empty();
var BV1 = $('#mycometer_coc_sample_bv1').val();
var BV2 = $('#mycometer_coc_sample_bv2').val();
$('#mycometer_coc_sample_cv').val((BV2 - BV1)*0.84 + BV2);
$('#cv').append($('#mycometer_coc_sample_cv').val());
});
#mycometer_coc_sample_cv
eine versteckte number_field ist verwendet, um meinen Controller den Wert zurück zu senden. Ich zeige diesen Wert in ein div von #cv
Die erste Funktion funktioniert ordnungsgemäß. Die Beispielzahlen, die ich verwendet habe, sind BV1 = 2, BV2 = 12. Bei Eingabe von 2 in BV1 erhalte ich die richtige Ausgabe in CV von -1,68. Aber wenn ich den zweiten Wert 12 in BV2 eingib, bekomme ich 8,412, wenn die richtige Ausgabe sollte sein 20.4
Ich habe keine Ahnung, was schief geht. Kann jemand helfen, dies zu debuggen?
Einige Screenshots: Eingabe erster Wert = korrekte Ausgabe
Zweiter Wert etwas schief geht und falsche Ausgabe. Lebenslauf sollte 20,4
(12-2) gleich = 10 => 10 * 0,84 = 8,4 => 8,4 + 12 = 20,4
jQuery macht keine Multiplikation. Das ist JavaScript. Und verstehen Sie, dass der Rückgabewert von '.val()' immer eine ** Zeichenkette ** ist, also müssen Sie explizit eine Zahl erzwingen. – Pointy
Und es ist im Browser getan ... die nichts darüber weiß, welche Serversprache oder Framework Sie verwenden. Rails ist irrelevant – charlietfl
Ich wusste nicht '.val()' zurückgegebene Zeichenfolge. Nach dem Umschließen meiner Variablen in 'Number()', die mir die richtige Ausgabe gab –