jQuery Multiplica el valor de entrada y sum con otra entrada

He estado tratando de hacer funcionar esta función relativamente simple y no lo hará. Sigue emitiendo los números como una cadena en lugar de sumrlos.

$('#FS-quantity-1').change(function() { var subtotal = $("#HF-quantity").val()*2; var sum = Number(subtotal)+$("#FS-quantity-1").val(); $("#sticker-quantity").val(sum); }); 

Esto genera los 2 valores juntos como una cadena en lugar de sumrlos. También probé esto:

 $('#FS-quantity-1').change(function() { var subtotal = $("#HF-quantity").val()*2; var sum = parseInt(subtotal)+$("#FS-quantity-1").val(); $("#sticker-quantity").val(sum); }); 

Y eso tampoco funcionó. También intenté multiplicar el subtotal por 1 para convertirlo en un entero. Eso no funcionó.

¿Alguna idea de cómo puedo obtener el subtotal y el valor de val () de # FS-quantity-1 para sumr como un entero?

Utilizar:

 var sum = subtotal + parseInt($("#FS-quantity-1").val(), 10); 

No es necesario usar Number en el subtotal porque ya es un número, debido a la multiplicación que se usó para asignarlo. Pero .val() devuelve una cadena, y necesita convertirla en un número, porque + realiza la concatenación si alguno de los argumentos es una cadena.

¿El valor que está obteniendo de # HF-quantity es una cadena o un entero?

Tal vez deberías hacer algo como esto. No decir que esta es la solución pero es más legible.

 var addThis = $("#element").val(); var plusThis = $("#otherElemenet").val(); var total = addThis + plusThis;