Как суммировать переменные?

#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);

});
  

http://jsfiddle.net/RGdU2/4

Комментарии:

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() );
}
  

ДЕМОНСТРАЦИЯ JSFIDDLE

Комментарии:

1. Спасибо! но моя проблема в том, что я не могу суммировать 3 продукта, не работает или я не знаю, как это решить

2. Что вы добавляете к чему к чему? Вы можете сделать простой sum , как это: var total = $('$cant1').val() $('#cant2').val() $('#cant3').val()

3. я хочу суммировать 3 продукта в общем поле

4. точно! но когда я меняю любое поле со списком, отображается общая сумма. Но не работает .. я ставлю это (ваш пример) и нет…

5. Пожалуйста, взгляните на function демонстрацию и, которую я добавил к своему ответу.