input框保持两位小数

HTML

<div class="col-md-4">
    <div class="form-group has-feedback row">
        <div class="col-md-6 orderMsgRight">
            <label>预计我方投资金额(万元):</label>
        </div>
        <div class="col-md-6 orderMsgLeft">
            <input name="investBudget" autocomplete="off" class="num" placeholder="请保留两位小数" onkeyup="clearNoNum(this)"
             type="text" id="investbudget" th:value="${estimated_cost}">
        </div>
    </div>
</div>

 

js

 1 //控制只能输入小数点后2位
 2 function clearNoNum(obj) {
 3     obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符   
 4     obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的   
 5     obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
 6     obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数   
 7     if (obj.value.indexOf(".") < 0 && obj.value != "") { //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额  
 8         obj.value = parseFloat(obj.value);
 9     }
10 }
11 //失去焦点时再校验一遍 
12 $(".num").blur(function() {
13     var vl = this.value;
14     var reg = new RegExp("^[0-9]+(.[0-9]{2})?$");
15     var boo = reg.test(vl);
16     if (boo) {
17         this.value = Number(this.value).toFixed(2);
18     } else {
19         $(this).val("");
20     }
21 
22 });

 

posted @ 2019-06-04 10:37  小能熊  阅读(12379)  评论(0编辑  收藏  举报