繁体   English   中英

数字.js实时格式

[英]numeral.js live formatting

我想用Numeral.js格式化一个输入框。

我试过这样的事。

    $('#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格式),但第一个没有。

我想你错过了数字语言文件:

<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.5.3/languages.min.js"></script>

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

 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); } }); 
 <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"> 

UPDATE

您还有光标位置问题。 您可以通过使用此jQuery插件acdvorak / jquery.caret来解决此问题,以便在每次输入字符时将插入位置设置为输入的开始,如下所示:

$(this).val(numeral($(this).val()).format('0,0.00$'));
$(this).caret(0);

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

numeral.language($(this).data('language'));

查看我更新的代码段。 它应该现在可以按你的需要工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM