Поскольку хотя бы одно значение является строкой, оператор + интерпретируется как оператор конкатенации строк.Простейшее решение этой проблемы - указать, что вы намерены интерпретировать значения как числа.
var total = +a + +b;
и
$('#total_price').val(+a + +b);
Или, что лучше, просто вытяните их как числа, чтобыНачните с:
var a = +$('input[name=service_price]').val();
var b = +$('input[name=modem_price]').val();
var total = a+b;
$('#total_price').val(a+b);
См. документацию Mozilla Unary + .
Обратите внимание, что это хорошая идея, если вы знаете, что значение в любом случае будет числом,Если это пользовательский ввод, вы должны быть более осторожны и, вероятно, захотите использовать parseInt
и другие проверки, как предлагают другие ответы.