我有一个包含多个输入字段的表单,用于输入金额,并在屏幕底部显示总计。我希望用户只能输入数字[0-9]
,然后输入小数.
,最多输入两位数。
首先,我使用了Ember插件ember-inputmask,它可以根据需要正确格式化货币,但如果我点击输入并点击输出而不输入数字,或者我只输入了部分数字并点击了其他total
等于NaN
。
我还试图通过autonumeric.js
导入jQuery插件npm
并使用它,但没有成功。
只允许在Ember的输入字段中输入货币的最佳方法是什么?
是否有更好的插件或资源如何实现这一目标?
答案 0 :(得分:1)
您所看到的问题并非来自ember-inputmask
。这是total
未正确格式化的问题。
您可以使用帮助程序格式化总数,无论它是否为有效数字:
<强>助手/ FMT-currency.js 强>
import Ember from 'ember';
export function fmtCurrency(num) {
num = +num;
if (isNaN(num)) { return ''; } // You could set this to 0 if you wanted
num = num.toFixed(2);
return num.replace(/\B(?=(\d{3})+(?!\d)(?=\.))/g, ',');
}
export default Ember.Helper.helper(fmtCurrency);
<强>一些-template.hbs 强>
${{fmt-currency total}}