По какой-то причине мой код возвращает "0111", когда возвращаемое значение должно быть 3, добавляя числа вместе.
Есть ли лучший способ написать это, чтобы добавить значение входного текста?
var p = $(".p").val();
var r = $(".r").val();
var d = $(".d").val();
var s = $(".s").val();
var checkability = p + r + d + s;
alert(checkability)
Вы объединяете строки, которые вам нужно передать в числовые. val()
возвращает данные как строку или явно использует parseInt(var, 10)
или parseFloat
на основе вашего типа.
Простым способом является использование унарного + оператора, префиксного переменной:
var checkability = +p + +r + +d + +s;
Используйте parseInt, чтобы сделать их целыми
var p = parseInt($(".p").val(),10);
var r = parseInt($(".r").val(),10);
var d = parseInt($(".d").val(),10);
var s = parseInt($(".s").val(),10);
var checkability = p + r + d + s;
alert(checkability)
Несомненно, самое простое - вывести значения строк в целые числа:
var p = +$(".p").val();
var r = +$(".r").val();
var d = +$(".d").val();
var s = +$(".s").val();
Вы также можете использовать более длинную функцию parseInt()
такую как var p = parseInt( $(".p").val(), 10);
parseInt
без основ, вдвойне, если вы имеете дело с пользовательским вводом.