#javascript #jquery
#javascript #jquery
Вопрос:
мне нужно сделать следующее:
Я пытаюсь просуммировать 3 произведения и отобразить в общем поле, но с событием onchange. Когда я выбираю первый выпадающий список, сохраните значение в total, со вторым выпадающим списком то же самое, суммируйте значение с total, но у меня не работает. Что я могу сделать?
jQuery(document).ready(function ($){
$('select#cant1').on('change',function(){
var valor1 = '1500' * $(this).val();
$("#valProd1").text(valor1);
});
$('select#cant2').on('change',function(){
var valor2 = '220000' * $(this).val();
$("#valProd2").text(valor2);
});
$('select#cant3').on('change',function(){
var valor3 = '1300' * $(this).val();
$("#valProd3").text(valor3);
});
$('select#cant1,cant2').on('change',function(){
var op = $("#cant1");
var op1 = op * 1500;
$("#valSubtotal").text(op1);
});
});
Комментарии:
1. Используйте
parseInt()
для всех ваших переменных, в настоящее время вы пытаетесь умножить две строки вместе2. Можете ли вы создать JSFiddle для этого?
3. также
'1500'
это не то же самое, что1500
. Вам нужно убрать кавычки4. Да! вот jsfiddle.net/patriciodilet/RGdU2 спасибо!
5. Это заставило меня вспомнить шутку с плагином jQuery для арифметики .
Ответ №1:
затем добавьте класс с именем valor
для каждого выбранного вами
$('.valor').on('change',function(){
var valor1 = 1500 * $("#cant1").val();
var valor2 = 220000 * $("#cant2").val();
var valor3 = 1300 * $("#cant3").val();
$("#valProd1").text(valor1);
$("#valProd2").text(valor2);
$("#valProd3").text(valor3);
$("#valSubtotal").text(valor1 valor2 valor3);
});
Комментарии:
1. @scrowler я не тестирую, но думаю, что в этом нет необходимости, я проверю
Ответ №2:
Следующее должно работать нормально:
var valor1 = 1500 * $(this).val();
Вместо:
var valor1 = '1500' * $(this).val();
Работает более или менее похоже parseInt()
, и вы не хотите заключать числа в кавычки, иначе вам тоже пришлось бы их приводить.
Функция, подобная следующей, может вызываться при каждом обратном вызове изменения, поэтому итоговое значение обновляется каждый раз при изменении раскрывающегося списка:
function total() {
$('#valTotal').text( $('#valProd3').text().trim() $('#valProd2').text().trim() $('#valProd1').text().trim() );
}
Комментарии:
1. Спасибо! но моя проблема в том, что я не могу суммировать 3 продукта, не работает или я не знаю, как это решить
2. Что вы добавляете к чему к чему? Вы можете сделать простой
sum
, как это:var total = $('$cant1').val() $('#cant2').val() $('#cant3').val()
3. я хочу суммировать 3 продукта в общем поле
4. точно! но когда я меняю любое поле со списком, отображается общая сумма. Но не работает .. я ставлю это (ваш пример) и нет…
5. Пожалуйста, взгляните на
function
демонстрацию и, которую я добавил к своему ответу.