JQuery добавление входного Val вместе

0

По какой-то причине мой код возвращает "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)
Теги:

3 ответа

3
Лучший ответ

Вы объединяете строки, которые вам нужно передать в числовые. val() возвращает данные как строку или явно использует parseInt(var, 10) или parseFloat на основе вашего типа.

Простым способом является использование унарного + оператора, префиксного переменной:

var checkability = +p + +r + +d + +s;

скрипка

0

Используйте 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)
  • 1
    Не используйте parseInt без основ, вдвойне, если вы имеете дело с пользовательским вводом.
  • 0
    @Quentin Что делать, если вы хотите поддерживать пользовательский ввод hex и dec? :)
Показать ещё 2 комментария
0

Несомненно, самое простое - вывести значения строк в целые числа:

var p = +$(".p").val(); 
var r = +$(".r").val();
var d = +$(".d").val();
var s = +$(".s").val();

Пример jsFiddle

Вы также можете использовать более длинную функцию parseInt() такую как var p = parseInt( $(".p").val(), 10);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню