首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在jQuery中,将数字格式化为两位小数的最佳方式是什么?

在jQuery中,将数字格式化为两位小数的最佳方式是什么?
EN

Stack Overflow用户
提问于 2009-01-25 16:28:20
回答 3查看 192.1K关注 0票数 70

这就是我现在所拥有的:

代码语言:javascript
复制
$("#number").val(parseFloat($("#number").val()).toFixed(2));

对我来说它看起来很乱。我认为我没有正确地链接函数。我必须为每个文本框调用它吗,或者我可以创建一个单独的函数?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-01-25 20:55:26

如果您正在对多个字段执行此操作,或者经常执行此操作,那么也许插件就是答案。

下面是一个jQuery插件的开始,它将一个字段的值格式化为两个小数位。

由字段的onchange事件触发。你可能想要一些不同的东西。

代码语言:javascript
复制
<script type="text/javascript">

    // mini jQuery plugin that formats to two decimal places
    (function($) {
        $.fn.currencyFormat = function() {
            this.each( function( i ) {
                $(this).change( function( e ){
                    if( isNaN( parseFloat( this.value ) ) ) return;
                    this.value = parseFloat(this.value).toFixed(2);
                });
            });
            return this; //for chaining
        }
    })( jQuery );

    // apply the currencyFormat behaviour to elements with 'currency' as their class
    $( function() {
        $('.currency').currencyFormat();
    });

</script>   
<input type="text" name="one" class="currency"><br>
<input type="text" name="two" class="currency">
票数 108
EN

Stack Overflow用户

发布于 2009-01-25 16:59:48

也许像这样,如果你愿意,你可以选择多个元素?

代码语言:javascript
复制
$("#number").each(function(){
    $(this).val(parseFloat($(this).val()).toFixed(2));
});
票数 65
EN

Stack Overflow用户

发布于 2012-11-28 00:33:08

我们将Meouw函数修改为与keyup一起使用,因为当您使用输入时,它会更有帮助。

请检查以下内容:

你好!,@heridev和我用jQuery创建了一个小函数。

您可以尝试下一步:

HTML

代码语言:javascript
复制
<input type="text" name="one" class="two-digits"><br>
<input type="text" name="two" class="two-digits">​

jQuery

代码语言:javascript
复制
// apply the two-digits behaviour to elements with 'two-digits' as their class
$( function() {
    $('.two-digits').keyup(function(){
        if($(this).val().indexOf('.')!=-1){         
            if($(this).val().split(".")[1].length > 2){                
                if( isNaN( parseFloat( this.value ) ) ) return;
                this.value = parseFloat(this.value).toFixed(2);
            }  
         }            
         return this; //for chaining
    });
});

​在线演示:

http://jsfiddle.net/c4Wqn/

(@heridev,@vicmaster)

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

https://stackoverflow.com/questions/477892

复制
相关文章

相似问题

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