首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >numeral.js实时格式化

numeral.js实时格式化
EN

Stack Overflow用户
提问于 2016-11-20 12:14:35
回答 1查看 2.5K关注 0票数 1

我想用Numeral.js实时格式化输入框。

我试过这样的方法。

代码语言:javascript
复制
    $('#exchangeInputFirst').keyup(function () { 
//eur formatting
            numeral.language('sk');
            $('#exchangeInputFirst').val(numeral($('#exchangeInputFirst').val()).format('0,0.00$'); 

//to HUF format            $('#exchangeInputSecond').val($('#exchangeInputFirst').val()*$('#first').html());
            numeral.language('hu');
            var string = numeral($('#exchangeInputSecond').val()).format('0,0.00$'); 
            $('#exchangeInputSecond').val(string);
        });

第二个函数工作得很好(以HUF格式),但第一个功能不是。

EN

回答 1

Stack Overflow用户

发布于 2016-11-20 16:59:54

我想你漏掉了数字语言文件:

代码语言:javascript
复制
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.5.3/languages.min.js"></script>

除非我不包括语言js文件,否则我无法再现您的情况。试试你的例子,点击第一个输入框中的一个键:

代码语言:javascript
复制
var a = false;
$('#exchangeInputFirst, #exchangeInputSecond').click(function () {
	$(this).caret(0);
});

$('#exchangeInputFirst, #exchangeInputSecond').keyup(function(){
	if(a == false){
		$(this).val('');
		a = true
	} else {
		numeral.language($(this).data('language'));
		$(this).val(numeral($(this).val()).format('0,0.00$'));
		$(this).caret(0);
	}
});
代码语言:javascript
复制
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.5.3/numeral.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.5.3/languages.min.js"></script>
<script src="http://zikro.gr/dbg/html/jquery.caret/dist/jquery.caret-1.5.2.min.js"></script>


<input type="text" data-language="sk" id="exchangeInputFirst">
<input type="text" data-language="hu" id="exchangeInputSecond">

更新

光标的位置也有问题。您可以通过使用此jQuery插件acdvorak/jquery.符号来将插入符号位置设置为每次键入字符时输入的乞讨位置来解决这一问题:

代码语言:javascript
复制
$(this).val(numeral($(this).val()).format('0,0.00$'));
$(this).caret(0);

此外,我还在输入的数据(如data-language="sk" )中包含了该语言,现在您可以在keyup事件中直接读取它,如下所示:

代码语言:javascript
复制
numeral.language($(this).data('language'));

看我更新的片段。现在,它应该可以按照您的要求工作。

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

https://stackoverflow.com/questions/40703891

复制
相关文章

相似问题

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