使用jQuery Slider传递不正确值的贷款计算器

Questifer

我有一个使用jQuery UI滑块元素的贷款计算器。当滑块移动时,我会在标签中向用户显示该值。但是,我也使用该值来计算其他值,例如每月还款等。

我似乎无法弄清楚为什么在标签中向用户显示的值是正确的(即,当滑块一直向左移动时,它显示5000,而当滑块一直向右时,它显示500000) ,但是传递到贷款计算中的值始终是5000 off。

# JS
function computeLoan() {
  var amount = $('#slider1').slider('value');
  var months = parseInt(document.getElementById('months').value);
  var completionFee = 0;
  var interest_rate = 0.06;
  var monthly_interest_rate = interest_rate / 12;
  var payment = amount * (monthly_interest_rate * (Math.pow(1 + monthly_interest_rate, months))) / (Math.pow(1 + monthly_interest_rate, months) -1);
  monthly_payment = payment.toFixed(2);
  document.getElementById('afterCompletion').innerHTML = "$"+amountMinusCompletion.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  document.getElementById('payment').innerHTML = "$"+monthly_payment.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  payable = parseInt(monthly_payment * months).toFixed(2);
  document.getElementById('payable').innerHTML = "$"+payable.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
$('#slider1').slider({
  min: 5000,
  max: 500000,
  step: 5000,
  slide: function(event, ui)
    {
      $('#slider1-value').text("$"+ui.value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
      computeLoan();
    }
});

# HTML
<select class="form-control" id="months" onchange="computeLoan()">
    <option value="6" selected>6 Months</option>
    <option value="12">12 Months</option>
    <option value="18">18 Months</option>
    <option value="24">24 Months</option>
    <option value="36">36 Months</option>
    <option value="48">48 Months</option>
    <option value="60">60 Months</option>
</select>

<label for="" class="col-md-6 control-label color-purple" id="slider1-value"></label>

当我使用选择字段更改表单上的值时,会从滑块中提取正确的值并在计算中使用,但是在不更改选择字段中的项的情况下滑动滑块时,它会关闭5000,直到我更改术语。

朱利安·格雷戈尔

Slide滑块更改时发生事件,因此您在停止之前先验证值。我想会有一个非常非常小的延迟,导致该值不传递到您的计算借贷函数中。您有几种解决方案,也许最干净的方法是添加一个stop事件,以确保停止时获取值。但是您也可以设置超时时间。停止事件的示例:

$(document).ready(function() {
  $('#slider1').slider({
    min: 5000,
    max: 500000,
    step: 5000,
    slide: function(event, ui) {
      $('#slider1-value').text("$" + ui.value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
      computeValue()

    },
    stop: function(event, ui) {
      $('#slider1-value').text("$" + ui.value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
      computeValue();

    }
  });

  function computeValue() {
    var amount = $('#slider1').slider('value');
    $('#slider1-computedvalue').text(amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
  }
})
<link href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

<div id='slider1'></div>
<div id='slider1-value'></div>
<div id='slider1-computedvalue'></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 highchart 的抵押贷款计算器

来自分类Dev

JavaScript计算器返回的值不正确

来自分类Dev

jQuery元素宽度计算不正确

来自分类Dev

jQuery:背景值不正确

来自分类Dev

jQuery:JSON 值显示不正确

来自分类Dev

税收计算器加班计算不正确

来自分类Dev

为什么计算器中的计算不正确?

来自分类Dev

时间计算器的日期格式不正确

来自分类Dev

jQuery刷新后不正确计算高度

来自分类Dev

当我使用Double时计算不正确吗?

来自分类Dev

jQuery浏览器高度不正确

来自分类Dev

jQuery UI:日期选择器显示不正确

来自分类Dev

jQuery UI日期选择器显示不正确

来自分类Dev

大量的NaN和不正确的值在jQuery块中?

来自分类Dev

jQuery字符串比较返回不正确的值?

来自分类Dev

$ .post的值不正确。JQuery中的选择

来自分类Dev

从 servlet 到 JQuery .ajax 方法获取不正确的值

来自分类Dev

服务器标签格式不正确-使用JQuery使用服务器控件创建表

来自分类Dev

使用 css 属性设置 jQuery 动画不正确

来自分类Dev

使用jQuery创建表单条目计算器

来自分类Dev

如何使用jQuery解决计算器中的负值

来自分类Dev

基本的jQuery计算器

来自分类Dev

计算器创建jQuery

来自分类Dev

使用联合存储的值显示不正确

来自分类Dev

使用mmap时整数存储为不正确的值

来自分类Dev

使用html标记时,byte []值不正确

来自分类Dev

使用堆栈视图时帧值不正确

来自分类Dev

使用Json.toJson时Float的不正确值

来自分类Dev

jQuery计算器-执行验证而不是计算器