Я относительно не знаком с javascript
/jQuery
, и у меня возникли проблемы с получением ожидаемого результата. Я хотел бы, чтобы общее количество отображалось, даже если только один вход имеет значение, в противном случае я хочу показать 0. Однако сейчас он требует ввода всех трех значений до того, как будет отображаться сумма. Он не будет просто добавлять следующий ввод в итоговое значение, когда я ввожу в ввод. Я могу представить себе ряд длинных условных операторов, которые будут перекрестно проверять каждый вход для .length и возвращать общее количество на основе каждого входа. Разумеется, должен быть более простой и понятный способ. Если бы это была java, я бы использовал total + = (переменная), и это бы их итог, когда я пошел. Кажется, здесь это не работает.сумма чисел, не имеющих желаемого эффекта jquery
$('#invoice_labor, #invoice_materials, #invoice_other').keyup(function() {
if ($('#invoice_labor').length || $('#invoice_materials').length || $('#invoice_other').length) {
updateTotal();
} else {
$('#invoice_total').html(0);
}
});
var updateTotal = function() {
var input1 = parseFloat($('#invoice_labor').val(), 2);
var input2 = parseFloat($('#invoice_materials').val(), 2);
var input3 = parseFloat($('#invoice_other').val(), 2);
var total = input1 + input2 + input3;
$('#invoice_total').html(total);
$("#invoice_total").html(parseFloat($("#invoice_total").html()).toFixed(2));
};
и вот fiddle я возился с.
Таким образом, я хочу, чтобы общее значение изменялось независимо от того, в каком поле я ввожу число. Если это всего лишь одно, общее количество, которое добавляет это к общей переменной и возвращает ее. Если это комбинация из двух, объедините их и добавьте их в общую. Спасибо за помощь.
'parseFloat' не принимает 2 параметра – Ian
@Ian спасибо, так, 2 бесполезно? –
Да, эффективно. Кажется, что это игнорируется. Хотя я не удивлюсь, если между браузерами есть несоответствия, поэтому я все равно удалю его. – Ian