更新Javascript货币计算器以实时计算多个总额
Updating a Javascript money calculator to calculate multiple totals in real-time
我在Yaldex上发现了以下货币计算器,需要帮助对其进行一些更新。我足够足智多谋,可以编辑现有的Javascript,但仅此而已。代码如下,可以在这里找到一个工作示例:http://www.yaldex.com/FSCalculators/MoneyCounter.htm
<script language="javascript" type="text/javascript">
/* Visit http://www.yaldex.com/ for full source code
and get more free JavaScript, CSS and DHTML scripts! */
<!-- Begin
function s(num, val) {
amount = num * 1; // amount is the num or NaN
sum = (!num ? 0 : num) * val; // the sum for that bill or coin
if (isNaN(amount)) { // if the entire is not a number
alert(
"' " + num + " ' is not a valid entry and that field will "
+ "not be included in the total money calculation."
);
return 0;
}
else
return sum; // if it is OK, send sum back
}
function money(form) {
hun = s(form.hun.value, 100); // Each amount is the returned value
fif = s(form.fif.value, 50); // for the amount in the s() function
twe = s(form.twe.value, 20);
ten = s(form.ten.value, 10);
fiv = s(form.fiv.value, 5);
one = s(form.one.value, 1);
hlf = s(form.hlf.value, .5);
qtr = s(form.qtr.value, .25);
dme = s(form.dme.value, .1);
nck = s(form.nck.value, .05);
pny = s(form.pny.value, .01);
// add up all the amounts
var ttl = hun + fif + twe + ten + fiv
+ one + hlf + qtr + dme + nck + pny;
// rounds total to two decimal places
ttl = "" + ((Math.round(ttl * 100)) / 100);
dec1 = ttl.substring(ttl.length-3, ttl.length-2);
dec2 = ttl.substring(ttl.length-2, ttl.length-1);
if (dec1 != '.') { // adds trailing zeroes if necessary
if (dec2 == '.') ttl += "0";
else ttl += ".00";
}
form.total.value = "$ " + ttl; // display total amount
}
// End -->
</script>
<form name=coinform>
<table border=1>
<tr>
<td align=center>$ 100</td>
<td align=center>$ 50</td>
<td align=center>$ 20</td>
<td align=center>$ 10</td>
<td align=center>$ 5</td>
<td align=center>$ 1</td>
</tr>
<tr>
<td align=center><input type=text name=hun size=3></td>
<td align=center><input type=text name=fif size=3></td>
<td align=center><input type=text name=twe size=3></td>
<td align=center><input type=text name=ten size=3></td>
<td align=center><input type=text name=fiv size=3></td>
<td align=center><input type=text name=one size=3></td>
</tr>
<tr>
<td colspan=6> </td>
</tr>
<tr>
<td> </td>
<td align=center>50 ¢</td>
<td align=center>25 ¢</td>
<td align=center>10 ¢</td>
<td align=center>5 ¢</td>
<td align=center>1 ¢</td>
</tr>
<tr>
<td> </td>
<td align=center><input type=text name=hlf size=3></td>
<td align=center><input type=text name=qtr size=3></td>
<td align=center><input type=text name=dme size=3></td>
<td align=center><input type=text name=nck size=3></td>
<td align=center><input type=text name=pny size=3></td>
</tr>
<tr>
<td colspan=5 align=center>
<input type=button name=calc value="Calculate" onClick="javascript:money(this.form)">
<input type=text name=total size=10>
</td>
</tr>
</table>
</form>
我已经确定了如何通过在每个输入字段中添加onkeyup事件来实时更新总金额,但我也想在每个美元/硬币金额中添加一个额外的字段,当用户输入每个数量时,该字段将显示每个单位的总金额,并实时更新所有金额的总金额。我还希望能够将总额显示为两个金额,包括总美元和总美分(例如100.00/10000美分)。我设想它看起来或多或少是这样的:
$100 x ___ = $___ total
$50 x ___ = $___ total
.
.
.
5¢ x ___ = $___ total
1¢ x ___ = $___ total
GRAND TOTAL $_______ / _______ cents
如有任何指导和协助,我们将不胜感激。非常感谢。
Knockout JS将是实现类似功能的好方法。下面是一个可以做什么的快速示例。每一美元金额的数量将是一个可观测的,总数将是可观测的计算结果:
HTML
<input type="text" data-bind="value: hundredsQuantity, valueUpdate: 'afterkeydown'" />
<span id="hundredsResult" data-bind="text: hundredsAmount"></span>
视图模型(JS)
return function myViewModel() {
var self = this;
self.hundredsQuantity = ko.observable();
self.hundredsAmount = ko.computed(function () {
return parseInt(self.hundredsQuantity) * 100;
});
};
在这种情况下,数据绑定被配置为在用户开始键入字符(afterkeyDown
)时立即更新。
然后视图模型将由var vm = new myViewModel();
创建,绑定由ko.applyBindings(vm)
应用。Knockout网站上的文档非常好,将为这里显示的模式提供更多解释。祝你好运
相关文章:
- 如何在jquery中使用实时计算求和值
- 实时计算字段ExtJS
- 更新Javascript货币计算器以实时计算多个总额
- 如何基于表单字段在 JavaScript 中进行实时计算
- Javascript从文本框实时进行计算
- 如何在不同计算机上的用户之间共享网站上的实时更新
- 使用Javascript实时计算的表单代码
- 我的快速查看页面的实时计算
- 弹出页面的实时计算
- 使用.blur(function)更新实时计算
- Jquery:计算实时表单输入,它也会随着复选框的变化而变化
- 尝试对2个输入字段进行实时更新计算
- Javascript实时计算从单选按钮
- Javascript实时价格计算(从选项和复选框)
- 实时计算(2)
- 实时计算
- 实时计算有问题,计算每个按键
- 使用Javascript从文本框实时计算总数
- 使用jQuery更新跨度,基于输入字段的简单实时计算
- HTML:通过javascript(jquery)进行实时计算,包括带初始化的变量