Все ваши .val
s (без скобок) нуждаются в скобках после них: ()
.В противном случае вы получаете val
функцию , а не фактическое значение, которое возвращает функция.
Например,
var quantity = $('#product_quantity_PRI_' + this.alt).val(); // brackets
Кроме того, будетосторожно с .val()
, который возвращает строку .В вашем сценарии здесь нет ошибок, потому что вы выполняете только умножение, и строки автоматически преобразуются в числа.Но, если у вас есть дополнение, строки будут объединены : '1' + '1' = '11'
.Чтобы предотвратить это (и быть безопасным даже в вашем примере), поместите один знак плюс перед возвращаемым значением из .val()
, чтобы преобразовать строку в число:
var quantity = +$('#product_quantity_PRI_' + this.alt).val();