Не могу получить типизированное значение числовых входов HTML5 в Javascript - PullRequest
0 голосов
/ 31 мая 2019

Я хочу создать пенсионный калькулятор. Я застрял в получении значения, которое кто-то набирает для своего текущего возраста и возраста, в котором он хочет выйти на пенсию, поэтому я могу вычесть возраст выхода на пенсию на текущий возраст, чтобы получить количество лет для расчета. Я хочу, чтобы значение вводилось после отправки кнопки, и я хочу, чтобы оно отображалось в виде оповещения или console.log (), просто чтобы знать, как оно работает. Прямо сейчас он показывает [объект MouseEvent] вместо номера, который я хочу показать. Любая помощь будет принята с благодарностью. Я пока не очень хорош в JavaScript, но мне нужно выяснить это для сайта.

Я пробовал .value и .innerHTML. Я пробовал функции Name и анонимные функции, локальные и глобальные переменные и т. Д.

$(function () {
   $(".number-input").keydown(function (e) {
       if ((e.keyCode == 65 && (e.ctrlKey === true || e.metaKey === true)) ||
         (e.keyCode >= 35 && e.keyCode <= 40) ||
         $.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1) {
         return;
      }
      if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) &&
         (e.keyCode < 96 || e.keyCode > 105)) {
          e.preventDefault();
      }
   });
});
  // Variables
var currentAge = document.getElementById('age-current');

var retireAge = document.getElementById('age-retire');

var monthlyInvestment = document.getElementById('monthly-investment');

var annualReturn = document.getElementById('annual-return');

  // Limit # of Characters Functions
currentAge.oninput = function () {
  if(this.value.length > 2) {
    this.value = this.value.slice(0,2);
  }
}

retireAge.oninput = function() {
  if(this.value.length > 2){
    this.value = this.value.slice(0,2);
  }
}

monthlyInvestment.oninput = function (){
  if(this.value.length > 6){
    this.value = this.value.slice(0,6);
  }
}

annualReturn.oninput = function () {
  if(this.value.length > 6) {
    this.value = this.value.slice(0,6);
  }
}

  // Allow a percentage input
$(document).on('keydown', 'input[pattern]', function(e){
  var input = $(this);
  var oldVal = input.val();
  var regex = new RegExp(input.attr('pattern'), 'g');

  setTimeout(function(){
    var newVal = input.val();
    if(!regex.test(newVal)){
      input.val(oldVal); 
    }
  }, 0);
});

  // JS math to calculate return

// Example Funcgtion futureValue = investment*Math.pow((1+annualRate), 
years);


//Age Value Functions

 var currentAge = currentAge.value;
 var retireAge = retireAge.value;



// Button Submit

function getYears (retireAge, currentAge) {
 years = retireAge - currentAge;
  return years;
}

var btnSubmit = document.getElementById('submit');

btnSubmit.onclick = function (years){
  alert(years);
}

Я хочу иметь возможность принимать значения обоих возрастов (currentAge - retireAge) и хранить значения в различных годах. Затем покажите в оповещении или console.log (), когда я нажимаю кнопку отправки, чтобы узнать, что это работает.

...