表单输入中的掩码编号仅显示两位小数但保存原始值

时间:2018-01-29 11:11:08

标签: jquery html css forms input

我正在尝试格式化表单输入中的数字以仅显示两位小数但仍保留(保存)原始值。我需要这样做,因为如果我简单地对数字进行舍入并保存它将会有不正确的值。此外,客户最多只想看到两位小数。

我尝试使用此:https://igorescobar.github.io/jQuery-Mask-Plugin/和此:https://github.com/RobinHerbots/Inputmask但这两个插件都会忽略原始值并将其格式化为“* .00”。例:134.277将变为1342.77,这是非常错误的。

我也试过了,但不幸的是它不起作用:http://csspre.com/rounding-numbers/

是否可以仅对显示的数字进行舍入?

2 个答案:

答案 0 :(得分:1)

使用toFixed进行舍入



function doCustomRounding(obj){
    $("#"+obj.id).data("value", obj.value)
    $("#"+obj.id).val(Number(obj.value).toFixed(2));
}

function getOriginalValue(id){
    alert("original Value: "+$("#"+id).data("value"))
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<input id="formattedNo" value = "0" type="number" onchange="doCustomRounding(this)" data-value="0" /><button onclick="getOriginalValue('formattedNo')">Get Original Value</button>
&#13;
&#13;
&#13;

参见上面的工作代码段。输入带小数位的数字,然后从文本框中删除焦点。

修改

我使用data属性存储原始值,以避免必须存储每个新输入元素的变量

答案 1 :(得分:0)

打印值时,可以使用toFixed()方法。

toFixed()的文档:https://www.w3schools.com/jsref/jsref_tofixed.asp