Сумма двух входных значений по jquery
У меня есть код:
function compute() {
if ($('input[name=type]:checked').val() != undefined) {
var a = $('input[name=service_price]').val();
var b = $('input[name=modem_price]').val();
var total = a + b;
$('#total_price').val(a + b);
}
}
В моем коде я хочу получить значения двух текстовых входов и записать в текстовый ввод с идентификатором "total"
Мои два номера не суммируются, например:
service_price value = 2000
и modem_price=4000
в этом примере общее входное значение должно быть 6000, но это 20004000
Ответы
Ответ 1
Ваш код верен, за исключением того, что вы добавляете (конкатенировать) строки, а не добавляете целые числа. Просто измените свой код на:
function compute() {
if ( $('input[name=type]:checked').val() != undefined ) {
var a = parseInt($('input[name=service_price]').val());
var b = parseInt($('input[name=modem_price]').val());
var total = a+b;
$('#total_price').val(a+b);
}
}
и это должно сработать.
Вот какой рабочий пример, который обновляет сумму, когда флажок установлен, когда установлен флажок (и если этот флажок установлен, значение также обновляется при изменении одного из полей): jsfiddle.
Ответ 2
Поскольку по крайней мере одно значение является строкой, оператор + интерпретируется как оператор конкатенации строк. Простейшим решением для этого является указание на то, что вы намерены интерпретировать значения как числа.
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
и другую проверку, как предлагают другие ответы.
Ответ 3
используйте parseInt как a = parseInt($('input[name=service_price]').val())
Ответ 4
использовать parseInt
var total = parseInt(a) + parseInt(b);
$('#total_price').val(total);
Ответ 5
Передайте их в число
$('#total_price').val(Number(a)+Number(b));
Но прежде чем вы это сделаете
if (!isNaN($('input[name=service_price]').val()) {...
Ответ 6
<script>
$(document).ready(function(){
var a =parseInt($("#a").val());
var b =parseInt($("#b").val());
$("#submit").on("click",function(){
var sum = a + b;
alert(sum);
});
});
</script>
Ответ 7
если в нескольких классах вы хотите изменить дополнительную операцию в классе perticular, который показан ниже в примере
$('.like').click(function(){
var like= $(this).text();
$(this).text(+like + +1);
});