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 });