首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用locale pt-br引导TouchSpin + NumeralJS不起作用

使用locale pt-br引导TouchSpin + NumeralJS不起作用
EN

Stack Overflow用户
提问于 2018-08-04 13:30:38
回答 1查看 858关注 0票数 1

我试图使用bootstrap touchspin + numeraljs将货币输入的位置设置为pt-br

为此,我通过NumeralJS注册了一个自定义区域设置,所以当我使用创建增量递减函数的区域设置时,函数不能正常工作。如果我使用locale en,那么这些函数就能很好地工作。

使用的javascript代码如下:

代码语言:javascript
复制
	(function(global, factory) {
	  if (typeof define === 'function' && define.amd) {
	    define(['../numeral'], factory);
	  } else if (typeof module === 'object' && module.exports) {
	    factory(require('../numeral'));
	  } else {
	    factory(global.numeral);
	  }
	}(this, function(numeral) {
	  numeral.register('locale', 'pt-br', {
	    delimiters: {
	      thousands: '.',
	      decimal: ','
	    },
	    abbreviations: {
	      thousand: 'mil',
	      million: 'milhões',
	      billion: 'b',
	      trillion: 't'
	    },
	    ordinal: function(number) {
	      return 'º';
	    },
	    currency: {
	      symbol: 'R$'
	    }
	  });
	}));


	numeral.locale('pt-br');
	$("input[name='demo_callback']").TouchSpin({
	  callback_before_calculation: function(v) {

	    return numeral(v).value();
	  },
	  callback_after_calculation: function(v) {

	    return numeral(v).format("$0,0.00");
	  }
	});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://use.fontawesome.com/releases/v5.0.8/css/all.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-touchspin/4.2.5/jquery.bootstrap-touchspin.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>


<input id="demo_callback" type="text" value="1.00" data-bts-min="-1" data-bts-max="1000000" data-bts-step=".01" data-bts-decimals="2" name="demo_callback" />

诚挚的问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-04 14:45:41

感谢所有想帮忙的人,

我能够解决这个问题,在通过将它发送到转换之前,用locale pt-br的十进制分隔符替换enen十进制分隔符pt-br

代码语言:javascript
复制
	(function(global, factory) {
	  if (typeof define === 'function' && define.amd) {
	    define(['../numeral'], factory);
	  } else if (typeof module === 'object' && module.exports) {
	    factory(require('../numeral'));
	  } else {
	    factory(global.numeral);
	  }
	}(this, function(numeral) {
	  numeral.register('locale', 'pt-br', {
	    delimiters: {
	      thousands: '.',
	      decimal: ','
	    },
	    abbreviations: {
	      thousand: 'mil',
	      million: 'milhões',
	      billion: 'b',
	      trillion: 't'
	    },
	    ordinal: function(number) {
	      return 'º';
	    },
	    currency: {
	      symbol: 'R$'
	    }
	  });
	}));


	numeral.locale('pt-br');
	$("input[name='demo_callback']").TouchSpin({
	  callback_before_calculation: function(v) {

	    return numeral(v.replace('.', ',')).value();
	  },
	  callback_after_calculation: function(v) {

	    return numeral(v.replace('.', ',')).format("$0,0.00");
	  }
	});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://use.fontawesome.com/releases/v5.0.8/css/all.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-touchspin/4.2.5/jquery.bootstrap-touchspin.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>


<input id="demo_callback" type="text" value="1.00" data-bts-min="-1" data-bts-max="1000000" data-bts-step=".01" data-bts-decimals="2" name="demo_callback" />

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

https://stackoverflow.com/questions/51686095

复制
相关文章

相似问题

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