我帮助朋友建立基本网站。我的javascript技能还有很多不足之处,所以我学习的是我开始使用Javascript而不是Jquery库(旁注:我应该从一开始就使用Jquery ......?)
所以我有以下内容:
通过用户选择风险(无线电btns)金额(滑块)持续时间(下拉)来计算公式
当用户更改风险,金额或持续时间时,应更新总数,并显示一个按钮。
所以我提出了以下javascript:
JAVASCRIPT:
function getReturn(){
var risk = document.forms[0];
var years = document.getElementById("investmentDuration").value;
var slideAmount = document.getElementById("slideAmount").value;
var txt;
var returns;
var i;
for(i = 0; i < risk.length; i++){
if(risk[i].checked){
txt = risk[i].value;
//for
if(txt == 1){
returns = (slideAmount * 0.06)*years;
returns = Math.ceil(returns); // NO decimals
}
if(txt == 2){
returns = slideAmount * 0.11;
returns = Math.ceil(returns)*years; // NO decimals
}
if(txt == 3){
returns = slideAmount *0.17;
returns = Math.ceil(returns)*years; // NO decimals
}
}//if
}//for
然后我将getReturn()
函数添加到表单中的每个元素...
当我尝试运行它时,我得到以下内容:here is my JS FIDDLE
错误: getReturn() is not defined
HTML (请注意每个元素的点击功能)
<h2>SELECT INVESTMENT RISK LEVEL</h2>
<section>
<div>
<input type="radio" id="control_01" onclick="getReturn()" name="risk" value="1" checked>
<label for="control_01">
<h2>LOW RISK</h2>
<p>Slow & Steady. An Product Focused On Low Risk But Long term Gains</p>
</label>
</div>
<div>
<input type="radio" id="control_02" name="risk" onclick="getReturn()" value="2">
<label for="control_02">
<h2>MEDIUM</h2>
<p>Prepare For Glory. Medium To High Returns, Over A Medium To Long Period.</p>
</label>
</div>
<div>
<input type="radio" id="control_03" name="risk" onclick="getReturn()" value="3">
<label for="control_03">
<h2>High Risk</h2>
<p>Hardcore Investor. Tailored Based Package Focused on High Returns Over Short Periods</p>
</label>
</div>
</section>
<h4 style="color: black;">INVESTMENT AMOUNT:</h4>
<input type="range" id="slideAmount" name="slideAmount" onchange="getReturn()" value="6500" step="25" min="1000" max="10000">
<p>Number Of Years</p>
<select name="investmentDuration" id="investmentDuration" onclick="getReturn()">
<option value="1" selected>1 Year</option>
<option value="2">2 Years</option>
<option value="3">3 Years</option>
<option value="4">4 Years</option>
<option value="5">5 Years</option>
</select>
更新
我开始工作,但感觉
onclick() / onchange = function()
似乎效率低下。任何建设性的批评和/或建议都对我如何在这方面的工作和改进表示赞赏。非常感谢
答案 0 :(得分:1)
你得到了
getReturn()
未定义
错误,因为您的代码位于onLoad
事件中(是jsfiddle 中的默认值)
您需要更改此设置,如图所示,以便您的功能位于全局范围内,因此可以从DOM调用。
然后您还需要在html中添加#returns
元素。
最后的改进可能是在范围元素上使用oninput事件,以便在您滑动时进行更新