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

这就是我现在所拥有的:

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

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

如果你在几个领域做这个,或者经常这样做,那么也许一个插件就是答案。
下面是一个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"> 

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

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

我们修改一个Meuw函数来和keyup一起使用,因为当你使用一个input时,它会更有帮助。

检查这个:

嗨!@heridev和我在jQuery中创build了一个小函数。

你可以尝试下一步:

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)