Калькулятор: получить общую сумму от одного входа
В настоящее время я строю свой первый калькулятор в jQuery, и у меня есть некоторые проблемы с общей суммой значения на входе. Я не использую более одного ввода, потому что хочу сделать его простым и легким в использовании. Код ниже печатает NaN
и я не понимаю почему.
$('body').on('click', '#method-getsum', function() {
var sum = 0;
var string = $('input[name="fieldtext-calculate"]').val();
if(string.length != 0) {
sum += Number(string);
}
alert(sum);
});
Я что-то пропустил? Вы можете увидеть все это в действии здесь: http://jsfiddle.net/edgren/QTjWR/ (эта демонстрация содержит правильное решение с eval
функция (мой калькулятор не для реального проекта. Просто с проектом "тренировка")
Заранее спасибо.
2 ответа
Когда вы вводите что-то вроде 1+2
, твой код потом позвонит Number("1+2")
, Это неверно, так как Number()
ожидает единственное число (не дополнение) в качестве аргумента. Он не будет выполнять операции синтаксического анализа и интерпретации для вас, вы должны написать код самостоятельно.
Если это просто игрушечный проект, используйте eval
вместо Number
(во избежание eval
в реальных проектах это создает проблемы безопасности).
Возможно, вы используете ключевое слово для имени переменной. Попробуйте изменить код на:
var fieldText = $('input[name="fieldtext-calculate"]').val();
if(fieldText.length != 0) {
sum += Number(fieldText );
}
EDIT Nevermind, значение, которое возвращается из $('input[name="fieldtext-calculate"]').val();
это строка '7 + 8 + 9'. Попробуйте получить определенное значение, разделив на +
войдите, чтобы получить числа и массив, затем переберите массив.