我可以't获取要使用jQuery显示的计算器结果
I can't get calculator results to display with jQuery
我正在使用Foundation为Mortgage计算器创建滑块,我将每个滑块连接到jQuery代码,但结果不会显示在我创建的的输入上
我把它添加到一个jsfiddle中,以便现场观看:http://jsfiddle.net/to0namiSB/Ae5Y4/42/
代码如下:
<!-- Start of Mortgage Payment Calculator -->
<div class="row">
<div class="small-12 large-centered columns ">
<form>
<fieldset>
<legend>Mortgage Payment Calculator</legend>
<div class="row">
<h6 class="subheader">Use our loan calculator to help you determine the loan financing amount and payment options that are best for you.</h6>
</div>
<div class="row">
<!-- This is the Loan Amount slider -->
<h6 class="subheader">Loan Amount:</h6>
<div class="range-slider round " data-slider data-options="display_selector: #sliderOutput5; start: 1; end: 1000000;">
<span class="range-slider-handle" role="slider" tabindex="0"></span>
<span class="range-slider-active-segment"></span>
<input type="hidden">
</div>
<!-- The input where the user can input an number -->
<div class="small-4 large-2 columns right">
<input type="number" id="sliderOutput5">
</div>
</div>
<div class="row">
<label>Years:</label>
<div class="range-slider round " data-slider data-options="display_selector: #sliderOutput3; start: 1; end: 60;">
<span class="range-slider-handle" role="slider" tabindex="0"></span>
<span class="range-slider-active-segment"></span>
<input type="hidden" >
</div>
<div class="small-4 large-2 columns right">
<input type="number" id="sliderOutput3">
</div>
</div>
<div class="row">
<!-- This is the Interest slider -->
<h6 class="subheader">Interest:</h6>
<div class="range-slider round " data-slider data-options="display_selector: #sliderOutput4;">
<span class="range-slider-handle" role="slider" tabindex="0"></span>
<span class="range-slider-active-segment"></span>
<input type="hidden">
</div>
<!-- The input where the user can input an number -->
<div class="small-4 large-2 columns right">
<input type="number" min="0" max="100" value="10" step=".1" id="sliderOutput4">
</div>
</div>
<div class="row">
<input type=button id="btnPostJob" class="button right" value="Calculate"></input>
</div>
<div class="row">
<label>Approximate Payments:</label>
</div>
<div class="row">
<label>Monthly payment: $ <span class="output" id="payment"></span></label>
<label>Total payment: $ <span class="output" id="total"></span></label>
<label>Total interest: $ <span class="output" id="totalinterest"></span></label>
</div>
</fieldset>
</form>
</div>
</div>
<!-- End of Mortgage Payment Calculator -->
jQuery部分
$(document).foundation();
function doSum() {
var amount = $("#sliderOutput5");
var apr = $("#sliderOutput4");
var years = $("#sliderOutput3");
var payment = $("#payment");
var total = $("#total");
var totalinterest = $("#totalinterest");
var principal = parseFloat($(amount).val());
var interest = parseFloat($(apr).val()) / 100 / 12;
var payments = parseFloat($(years).val()) * 12;
var x = Math.pow(1 + interest, payments);
var monthly = (principal*x*interest)/(x-1);
document.getElementById('payment').innerHTML = monthly.toFixed(2);
document.getElementById('total').innerHTML = (monthly * payments).toFixed(2);
document.getElementById(totalinterest).innerHTML = ((monthly*payments)-principal).toFixed(2);
$("#payment, #total, #totalinterest").click(doSum);
};
EDIT:修复了jsfiddle链接。
我在这里看到的三个问题:
-
单击事件处理程序需要位于
dosum
函数之外。 -
当您获得totally元素时,"totally"需要在引号中,即
document.getElementById('totalinterest')
,尽管看起来您已经在jsfiddle中修复了这一点。 -
假设您希望在单击"计算"时显示计算结果,则需要将点击处理程序附加到该元素而不是支付元素,即使用
$("#btnPostJob").click(doSum);
而不是$("#payment").click(doSum);
您可以看看这是一个替代解决方案。plnkr.co/edit/hNg2gOTHa7ig2hPsrmZ8?p=预览
相关文章:
- 重写CSS:使用jquery显示none属性
- 使用mvc和jquery显示更多点击数据
- 如何使用jquery显示具体的li数
- PHP/JQUERY-显示json的每个子数组
- 如何使用jQuery显示JSON数据
- 使用jquery显示特定的li标记
- JavaScript/jQuery:显示DIV,直到用户停止在Textbox中键入
- Jquery显示的导航不'单击'主页'
- 如何避免试图用php+jquery显示php起始页的无限循环
- 使用Jquery显示隐藏表单字段
- 使用jquery显示mysql查询结果
- 最有效的jquery显示/隐藏切换
- 如何使用jQuery显示/隐藏菜单
- jQuery 显示未按预期执行
- 如何使用 jquery 显示所选选项值
- 使用 JQuery 显示来自 URL 的图像
- 如果选择了多个选项,则使用 jQuery 显示隐藏的表单元素
- 如何使用 JQuery 显示带有加载符号的数据表
- jquery 显示/隐藏切换在 Internet Explorer 中损坏
- 使用 jQuery 显示和隐藏菜单