Подтвердить что ты не робот

Сумма двух входных значений по 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

4b9b3361

Ответ 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);
});