首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一页面上的多个字段上实现money.js

在同一页面上的多个字段上实现money.js
EN

Stack Overflow用户
提问于 2013-03-30 17:24:41
回答 1查看 340关注 0票数 1

在概念上,我在思考如何实现这个(绑定到哪些事件等)。

我正在使用CakePHP并查看以下内容:

  • 一系列要展示的产品和相关价格($ products‘products’)
  • 每个产品都有一个基本货币集($ product )
  • 我有money.js、accounting.js和另一个为fx.rates和fx.base设置JSON数据的JS
  • 我知道用户希望看到的货币,很可能与产品基础货币(SessionComponent::read('User.Preferences.Currency')不同。
  • 显示货币短名(美元)和转换值的div,每个div具有唯一的id。

我的简单测试工作得很好--使用内联-php,我在两个脚本标记之间的页面上放置了一些JS。

代码语言:javascript
复制
<script>
var value = accounting.unformat(<? echo $product['Product']['price'] ?>); // clean up number (eg. user input)
var target = "<? echo SessionComponent::read('User.Preference.currency'); ?>"; // or some user input
var convertedValue = fx(value).from("<? echo $product['Currency']['currency']  >").to(target);

accounting.formatMoney(convertedValue, {
    symbol: target,
    format: "%v %s"
}); // eg. "53,180.08 GBP"   

alert(convertedValue);
</script>

很好。效果很好。但我想不出的是如何在有N个产品的页面上实现这一点。

我假设我创建了一个JS函数,类似于:

代码语言:javascript
复制
fx_convert(divid, price, fromcurrency, tocurrency)

在我的Cake视图中,我使用内联php来回显函数参数。

对于这个函数,使用jQuery的干净方法是什么,让价格‘div’调用fx_convert并用转换后的值更新它们的内容?

还是我对这件事的想法完全颠倒了?我们非常感谢所有的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-03-31 09:06:11

在睡了一觉之后,想出了办法。:)

使用内联PHP,我通过div属性传递往返货币,并设置一个统一的类名。例如:

代码语言:javascript
复制
<div class="fx" fx-from="<?php echo $product['Currency']['currency']; ?>" fx-to="<?php echo SessionComponent::read('User.Preference.currency') ?>" fx-value="<?php echo $product['Product']['price']; ?>"></div>

然后使用下面的jQuery片段遍历"fx“类的所有元素,并执行所需的计算(使用优秀的money.js和accounting.js)

代码语言:javascript
复制
$(document).ready(function() {

$(".fx").each( function( index, element ){

    var value = accounting.unformat($(this).attr("fx-value")); // clean up number (eg. user input)
    var target = $(this).attr("fx-to"); // or some user input
    var convertedValue = fx(value).from($(this).attr("fx-from")).to(target);

    $(this).html(accounting.formatMoney(convertedValue, {
        symbol: target,
        format: "%v %s"
    }));

});

});

仍然需要重构和整理,但解决方案是存在的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15721322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档