这可能非常简单,但对于我的生活,我无法解决如何做到这一点。所以这里说:我有一个包含大量文本框的大表单,这些文本框都是基于货币的,因此需要四舍五入到小数点后两位。这些文本框的值都是由我编写的一些JavaScript函数动态生成的,我可以使用.toFixed(2);
将它们向上/向下舍入到小数点后两位。然而,在计算出每个文本框的每个值之后,必须将其放入并且重复。我怎么能写一个简单的JavaScript(可以是jQuery)来定位所有文本框并将它们全部舍入到2个小数位?
感谢您的帮助:)
P.S很抱歉没有任何代码,但是没有任何代码可以显示,因为它全部被锁定在大功能中。但这就是我基本上所做的事情:
function workOutSomeVal() {
// lots of code to work out values and stuff
var finalValue = some mathematical equation to work out value;
var anotherValue = a different value;
$(".some-textbox").val((finalValue).toFixed(2));
$(".another-textbox").val((anotherValue).toFixed(2));
} // my question is, how could I get rid of .toFixed(2) and put in a generic statement somewhere to target all the textboxes?
答案 0 :(得分:2)
您可以拥有您调用的功能:
function roundTextBoxes() {
$("input[type=text]").val(function() {
return (+this.value).toFixed(2);
});
}
......然后随时调用它们。实例:http://jsbin.com/toyoc/1
这可能意味着,有时候,查看心算的页面的用户会发现它不会完全加起来......
答案 1 :(得分:1)
您可以为所有想要“圆化”的文本框提供一个公共类,然后选择然后使用该类并将舍入逻辑应用于每个文本框。
// let's say all the roundable textboxes have the class "roundable"
$('.roundable').each(function() {
var value = // some mathematical equation to work out value
$(this).val((value).toFixed(2));
});
答案 2 :(得分:0)
另一种方法:
var finalValue = function(){
// var value = some calculation
return value.toFixed();
}
或者 - 如果您需要其他地方的全部值,请创建一个新函数:
var finalValueView = function(){
finalValue().toFixed(2);
}
function workOutSomeVal() {
// ...
$(".some-textbox").val(finalValueView);
}
答案 3 :(得分:-3)
使用Math.round(num * 100) / 100