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

这就是我现在所拥有的:

$("#number").val(parseFloat($("#number").val()).toFixed(2));

它看起来很乱。 我不认为我正确地链接了这些功能。 我必须为每个文本框调用它,还是可以创建单独的函数?


如果你在几个领域做这个,或者经常这样做,那么也许一个插件就是答案。
下面是一个jQuery插件的开始,它将字段的值格式化为两位小数。
它由场的onchange事件触发。 你可能想要不同的东西。

<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">

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

$("#number").each(function(){
  $(this).val(parseFloat($(this).val()).toFixed(2));
});

我们修改了一个Meuw函数用于keyup,因为当你使用一个输入时它会更有帮助。

检查这个:

Hey there!,@heridev和我在jQuery中创建了一个小函数。

你可以尝试下一步:

HTML

<input type="text" name="one" class="two-digits"><br>
<input type="text" name="two" class="two-digits">​

jQuery的

// 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)

链接地址: http://www.djcxy.com/p/77453.html

上一篇: In jQuery, what's the best way of formatting a number to 2 decimal places?

下一篇: How best to determine if an argument is not sent to the JavaScript function